개발자
브라우져에서 원하는 화면대로 잘 나오는데 콘솔창에 아래와 같은 에러가 생깁니다. 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;
답변 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는 사라집니다
익명
작성자
2022년 10월 17일
그렇군요!! 말씀해 주신 방법 적용해 볼게요, 감사합니다!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!