프로젝트/트위터 클론코딩 JJack
[React] Each child in a list should have a unique "key" prop.
딜레이레이
2023. 11. 24. 15:32
map 함수를 이용할 때 Each child in a list should have a unique "key" prop. 에러를 가끔씩 볼 수 있다.
이 에러는 map으로 리스트를 만들 때 key prop을 주지 않아서 발생하는 문제다.
키값으로 사용할 고유한 값이 없다면 인덱스 값을 키값으로 사용할 수도 있긴 하다.
그렇지만 자바스크립트의 배열은 정적이지 않아서 배열의 길이나 원소가 변할 수 있다. 그렇기 때문에 잘못된 컴포넌트가 리렌더링되기도 할 수 있다.
그렇기 때문에 배열의 각 요소가 갖고 있는 고유한 값을 키값으로 이용하는 것이 좋다.
{result.map((res) => (
<div key={res.userId}>
<div>{res.userName}</div>
<div>{res.description}</div>
<div>{res.photo ?? null}</div>
</div>
))}
나는 result 배열의 원소들은 각각 고유한 userId를 갖고 있기 때문에 이것을 키값으로 사용했다.
[참고]
https://crong-dev.tistory.com/47