μ¬μ©μ λͺ©λ‘, λκΈ λͺ©λ‘, μν 리μ€νΈμ²λΌ μ¬λ¬ κ°μ νλͺ©μ λ°λ³΅ν΄μ νλ©΄μ 보μ¬μ€μΌ νλ κ²½μ°, Reactμμλ map() ν¨μλ₯Ό μ¬μ©ν΄μ JSXλ₯Ό λ°λ³΅ λ λλ§ν©λλ€.
μ΄λ² κΈμμλ 리μ€νΈ λ λλ§μ κΈ°λ³Έκ³Ό ν¨κ», κΌ νμν key μμ±μ λν΄ μ€λͺ ν©λλ€.
1. π λ°°μ΄μ JSXλ‘ λ°κΎΈκΈ° β map() ν¨μ
JSμ map() ν¨μλ λ°°μ΄μ λ°λ³΅ν΄ κ°κ°μ μμλ₯Ό μνλ ννλ‘ λ°κΏμ€λλ€.
const fruits = ['μ¬κ³Ό', 'λ°λλ', 'λΈκΈ°'];
function FruitList() {
return (
<ul>
{fruits.map((fruit) => (
<li>{fruit}</li>
))}
</ul>
);
}
μ μ½λμμ fruits λ°°μ΄μ μμλ€μ <li> νκ·Έλ‘ λ°λ³΅ μΆλ ₯νκ³ μμ΄μ.
2. β οΈ key μμ±μ κΌ λ£μ!
Reactλ 리μ€νΈλ₯Ό λ λλ§ν λ κ° νλͺ©μ ꡬλΆνκΈ° μν΄ keyλ₯Ό μ¬μ©ν©λλ€. keyκ° μκ±°λ μ€λ³΅λλ©΄ μ±λ₯ μ νλ UI λ¬Έμ (μ: κΉλΉ‘μ)κ° μκΈΈ μ μμ΄μ.
μ μμ λ₯Ό κ°μ ν΄λ³Όκ²μ:
{fruits.map((fruit, index) => (
<li key={index}>{fruit}</li>
))}
π μ¬κΈ°μ indexλ₯Ό keyλ‘ μΌμ§λ§, κ°λ₯νλ©΄ κ³ μ ν κ°(μ: id)μ μ¬μ©νλ κ²μ΄ λ μ’μ΅λλ€.
3. π§ͺ κ³ μ IDκ° μλ κ²½μ°
const users = [
{ id: 1, name: 'μ² μ' },
{ id: 2, name: 'μν¬' }
];
function UserList() {
return (
<ul>
{users.map(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}
key={user.id}λ μ΅μ μ λ°©μμ λλ€. μ΄ κ°μ νλͺ©μ΄ λ³ν΄λ μ μ§λκΈ° λλ¬Έμ΄μ£ .
π μ 리
- Reactμμ λ°°μ΄μ μΆλ ₯ν λ
map()μ μ¬μ©ν΄ λ°λ³΅ν©λλ€ keyλ νμμ΄λ©°, κ° νλͺ©μ κ³ μ νκ² κ΅¬λΆνλ μν μ ν©λλ€- κ°λ₯νλ©΄ index λμ κ³ μ ν idλ₯Ό keyλ‘ μ¬μ©νμΈμ
πΌοΈ 리μ€νΈ λ λλ§ νλ¦λ
μλ κ·Έλ¦Όμ λ°°μ΄ β λ°λ³΅ β JSX β λ λλ§ κ³Όμ μ μκ°νν νλ¦λμ λλ€:
