티스토리 뷰
Oops, All Code!/🛠 Oops, My Code!
[React] Warning: Each child in a list should have a unique "key" prop. 해결 방법
밍동망동 2024. 5. 24. 15:00아 이미지 삽입만 남겨두고 포스팅 전부 날아가서 너무 화가난다.
이 에러는 재사용된 컴포넌트를 식별할 수 없기 때문에 나타난다.
본래의 데이터에 id를 추가하고,
컴포넌트에 key props를 연결해주어야 한다.
원래 데이터
const food = [
{
name: 'Kimchi',
image:
'https://cdn.pixabay.com/photo/2022/06/13/05/14/kimchi-7259268_1280.jpg',
},
// ...생략
];
수정한 데이터
const food = [
{
id: 1,
name: 'Kimchi',
image:
'https://cdn.pixabay.com/photo/2022/06/13/05/14/kimchi-7259268_1280.jpg',
},
// ...생략
]
원래 컴포넌트
<Food name={dish.name} picture={dish.image} />
수정한 컴포넌트
<Food key={dish.id} name={dish.name} picture={dish.image} />
여기서 특이사항은, key props는 출력이 불가하다는 점이다.
function Food({ key, name, picture }) {
return (
<div>
<h2>{key}</h2>
<h2>{name}</h2>
<img src={picture} />
</div>
);
}
key props는 React 내부에서 사용되는 특별한 속성이기 때문이다.
따라서, 컴포넌트 내부에서 직접 접근하거나 출력할 수는 없다.
그저, React가 리스트를 렌더링할 때 각 요소를 식별하는 데 사용될 뿐이다.
만약 id를 출력하고 싶다면
function Food({ id, name, picture }) {
return (
<div>
<h2>{id}</h2>
<h2>{name}</h2>
<img src={picture} />
</div>
);
}
<Food key={dish.id} id={dish.id} name={dish.name} picture={dish.image}/>
이런 식으로 별도의 id props를 제작해주어야 한다.
'Oops, All Code! > 🛠 Oops, My Code!' 카테고리의 다른 글
useEffect 안 먹어요! index는 바뀌는데 왜 useEffect는 꿈쩍도 안 해요?🤯 (0) | 2025.04.07 |
---|---|
[React] useLocation을 사용했는데 state가 자꾸 null로 반환됐다. (0) | 2024.05.25 |
깃허브 기본 브랜치 변경 방법 (feat. master와 main의 차이) (0) | 2024.05.23 |
install npx 시도할 때 code EEXIST 에러 (0) | 2024.05.22 |
[React] ERROR in Plugin "react" was conflicted between and "BaseConfig" (0) | 2023.05.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- javascript
- 카드뉴스
- 우아한테크코스
- js
- 프로토타입
- 책추천
- 트러블슈팅
- 소사벌맛집
- 도서리뷰
- 어른의어휘공부
- 코딩테스트
- 회고
- 카페추천
- 대학생플리마켓
- 대학생팝업스토어
- 서평
- 플리마켓후기
- 어휘력
- 플리마켓운영
- 프론트엔드
- 소사벌
- 프리코스
- 타입좁히기
- typescript
- 일급객체
- 비즈플리마켓
- 경험플리마켓
- 도서추천
- react
- 안성스타필드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함