[React.js] 8. List 와 Key

2021. 8. 2. 23:32개발/React.js

반응형

이전에 StopWatch를 구현해보면서 현재 시간을 list에 저장하는 기능을 넣은적이 있었다.

이때 list에 값을 담고 그대로 출력하니 리스트의 각항목에 대한 key가 필요하다는 Warning 메세지가 떴었다.


2021.07.21 - [개발/React.js] - [React.js] StopWatch 구현하기

 

[React.js] StopWatch 구현하기

어떤 프로그래밍 언어든 직접 해보지 않으면, 내가 배운것이 다가 아니라는 것을 계속 깨닫게 된다. React 공홈을 통해 배운 것을 하나로 뭉쳐서 뭘 만들 수 있을까 고민해보다가 state, component 등

kwanghyuk.tistory.com

 

 

이유는 React.js 자체에서 엘리먼트에 안정적인 고유성을 부여하기 위해 배열내부의 엘리먼트에 지정해야한다고 한다.

 

아래와 같이 map의 key값을 써주면 된다.

const numbers = [1, 2, 3, 4, 5];
const listItems = numbers.map((number) =>
  <li key={number.toString()}>
    {number}
  </li>
);

 

고유한 ID를 부여하기 힘든 경우에는 index를 key값으로 사용할 수 있다.

const todoItems = todos.map((todo, index) =>
  // Only do this if items have no stable IDs
  <li key={index}>
    {todo.text}
  </li>
);

 

중괄호를 이용하여 map() 함수의 결과를 인라인으로 처리할수도 있다.

하지만 이런 경우 너무 많은 인라인코드가 발생하므로 적절하게 사용하는 것이 좋다.

function NumberList(props) {
  const numbers = props.numbers;
  return (
    <ul>
      {numbers.map((number) =>
        <ListItem key={number.toString()}
                  value={number} />
      )}
    </ul>
  );
}

 

반응형

'개발 > React.js' 카테고리의 다른 글

[React.js] 10. state 끌어올리기  (0) 2021.08.06
[React.js] 9. 폼  (0) 2021.08.03
[React.js] 7. 조건부 렌더링  (0) 2021.07.22
[React.js] StopWatch 구현하기  (0) 2021.07.21
[React.js] 6. Event  (0) 2021.07.20