const numbers = [1, 2, 3, 4, 5];
const listItems = numbers.map((numbers) =>
<li>{numbers}</li>
);
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<ul>{listItems}</ul>);
export default function ParentCompnt() {
const numbers = [1, 2, 3, 4, 5];
return(
<ul>
{ numbers.map((num) => <ChildrenCompnt>{num}</ChildrenCompnt>) }
</ul>
);
}
export default function ParentCompnt() {
const imgInfos = [
{
imgSrc: '',
title: '',
},
{
imgSrc: '',
title: '',
}
];
return(
<ul>
{ imgInfos.map((info) => <ChildrenCompnt imgSrc={info.imgSrc} title={info.title} />) }
</ul>
);
}
export default function ParentCompnt() {
const imgInfos = [
{
imgSrc: '',
title: '',
},
{
imgSrc: '',
title: '',
}
];
const mapResult = imgInfos.map((info) => <ChildrenCompnt imgSrc={info.imgSrc} title={info.title} />)
return(
<ul>
{ mapResult }
</ul>
);
}
Components 반복을 할 때 map 함수를 사용한 경우
이런 오류 메세지가 뜬다.key를 선택하는 가장 좋은 방법은 항목을 고유하게 식별할 수 있는 문자열을 사용하는 것이며, 대부분의 경우 데이터의 ID를 key로 사용한다.
const todoItems = todos.map((todo) =>
<li key={todo.id}>
{todo.text}
</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>
);
항목의 순서가 바뀔 수 있는 경우 key에 인덱스를 사용하는 것은 권장하지 않는다. 이로 인해 성능이 저하되거나 컴포넌트의 state와 관련된 문제가 발생할 수 있다.