개발자

react key error가 생깁니다.

2022년 10월 11일조회 105

브라우져에서 원하는 화면대로 잘 나오는데 콘솔창에 아래와 같은 에러가 생깁니다. Warning: Each child in a list should have a unique "key" prop. 왜 발생하는 걸까요?? 그리고 해결해야하나요??? import React from 'react'; function Test() { const items = ['hello', 'world', 'hi', 'javascript']; return ( <div> {items.map(item => ( <h1>{item}</h1> ))} </div> ); } export default Test;

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

엄홍재님의 프로필 사진

왜 발생하는 걸까요? - map함수를 이용해서 반복하는 경우 고유의 key를 할당해야합니다. 할당하지 않으면 error가 발생하게 됩니다. 해결해야 할까요? - 네 해결해야합니다!! element가 새롭게 추가되거나 삭제될 때 키를 통해 식별하여 효율이 올라가고 이상한 동작을 하지 않습니다. - https://ko.reactjs.org/docs/reconciliation.html#recursing-on-children 저라면 자료의 구조도 변경할 것 같아요 각 항목마다 고유한 id를 줄 것 같습니다. import React from 'react'; function Test() { const items = [ { id: 1, title: 'hello' }, { id: 2, title: 'world' }, { id: 3, title: 'hi' }, { id: 4, title: 'javascript' }, ]; return ( <div> {items.map(item => ( <h1 key={item.id}>{item.title}</h1> ))} </div> ); } export default Test; 이렇게 변경하면 고유한 id를 사용하게 되고 해당 error는 사라집니다

profile picture

익명

작성자

2022년 10월 17일

그렇군요!! 말씀해 주신 방법 적용해 볼게요, 감사합니다!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!