λ°°μ΄μ λ°μμ μΆλ ₯νλ μ»΄ν¬λνΈλ₯Ό μμ± ν μ€ννλ©΄ key κ°μ΄ νμνλ€λ κ²½κ³ κ° νμλλ€. μ¬κΈ° λ§νλ keyλ 무μμΌκΉ?
Keyλ Reactκ° μ΄λ€ νλͺ©μ λ³κ²½, μΆκ° λλ μμ ν μ§ μλ³νλ κ²μ λμ΅λλ€. keyλ μ리먼νΈμ μμ μ μΈ κ³ μ μ±μ λΆμ¬νκΈ° μν΄ λ°°μ΄ λ΄λΆμ μ리먼νΈμ μ§μ ν΄μΌ ν©λλ€.
λΌκ³ 리μ‘νΈ κ³΅μλ¬Έμμ μ νμλ€.
리μ‘νΈλ stateμμ λ³κ²½μ¬νμ΄ μλ λΆλΆλ§ μΊμΉν΄μ λ λλ§ ν΄μ€λ€
μ΄λ κ² λλ©΄ λ³κ²½λμ§ μλ λ°μ΄ν°λ€μ λν΄μ μ
λ°μ΄νΈλ₯Ό νμ§ μμ ν¨μ¨μ μΌλ‘ μλμν¬ μ μλ€.
κ·Έλ¬λ©΄ 리μ‘νΈλ λ°°μ΄ μ 체λ₯Ό λ€μ λ λλ§ ν κΉ or μΆκ°λ μμλ§ λ€μ λ λλ§ ν κΉ λ¦¬μ‘νΌλ μΆκ°λ μμλ§ λ λλ§ ν΄μ€λ€. κ·Έκ±Έ ꡬλ³νκΈ° μν΄μ νμν κ² λ°λ‘ keyμ΄λ€
{this.props.list.map((el, id) => {
return (
<div key={id} className="comment">
<div>
<strong>code_bootcamp</strong>
<Comment value={el} />
</div>
<div>
<i className="fas fa-times" id="commentOut" />
<i className="far fa-heart" />
</div>
</div>
);
})}
μ λ²μ λ§λ λ°λλΌ μλ°μ€ν¬λ¦½νΈλ‘ λ§λ μΈμ€νκ·Έλ¨μ 리μ‘νΈλ‘ λ³νμν€λ©΄μ
νΌλμ λκΈ λ¦¬μ€νΈλ₯Ό map()λ‘ κ΅¬ννλ€.
μ²μμ λ§λ€ λ 곡μ λ¬Έμμ μ΅νμ μλ¨μΌλ‘ index κ°μ μ€λ λλ€κ³ ??
νλ©΄μ κ·Έλ₯ indexλ₯Ό λΆμ¬νλλ° μΆκ°ν λλ λΉμ°ν λ¬Έμ λ μλ€.
λ°λ‘ λκΈ μμ κΈ°λ₯μ ꡬννλ €λ λ¬Έμ κ° μκ²Όλ€. κ·Έλμ μ°Ύμ보λ
μ²μ, μ€κ°μ λ°μ΄ν°λ₯Ό μΆκ°νκ±°λ μμ λ₯Ό ν κ²½μ° λ¬Έμ κ° λ°μνλ€κ³ νλ€.
toString()κ³Ό κ°μ΄ λ¬Έμμ΄λ‘ ν€κ°μ λΆμ¬νλ λ°©λ²
λλΆλΆ Dataμ κ°μ²΄μμ .id λ‘ μΆμΆνμ¬ μ¬μ©νλ€.
this.state = {
commentCounter: 0,
}
const addComment = () => ({
id: this.state.commentCounter++,
μ΄λ° μμΌλ‘ addComment νΈμΆν λλ§λ€ μΉ΄μ΄νΈκ° 1μ© μ¦κ°νμ¬ κ³ μ ν ν€κ°μ μ€ μλ μλ€.
μ°Έκ³ μ¬μ΄νΈhttps://wooooooak.github.io/frontend/2019/01/30/%EB%A6%AC%EC%95%A1%ED%8A%B8%EB%B0%B0%EC%97%B4%EB%B3%80%EA%B2%BD/
https://ko.reactjs.org/docs/lists-and-keys.html