React에서 객체 배열에 반응적으로 추가하기
이제 객체 배열의 반응성을 살펴보겠습니다.
이 경우, 객체 내부에 저장된 id를 통해
요소에 접근하여 모든 변경 작업을 수행해야 합니다.
실습해 봅시다. 다음과 같은 객체 배열이 있다고 가정하겠습니다:
const initNotes = [
{
id: 'GYi9G_uC4gBF1e2SixDvu',
prop1: 'value11',
prop2: 'value12',
prop3: 'value13',
},
{
id: 'IWSpfBPSV3SXgRF87uO74',
prop1: 'value21',
prop2: 'value22',
prop3: 'value23',
},
{
id: 'JAmjRlfQT8rLTm5tG2m1L',
prop1: 'value31',
prop2: 'value32',
prop3: 'value33',
},
];
배열의 각 요소를 별도의 li 태그로 출력해 보겠습니다:
function App() {
const [notes, setNotes] = useState(initNotes);
const result = notes.map(note => {
return <li key={note.id}>
<span>{note.prop1}</span>
<span>{note.prop2}</span>
<span>{note.prop3}</span>
</li>;
});
return <div>
<ul>
{result}
</ul>
</div>;
}
클릭 시 배열의 끝에 새 요소를 추가하여
ul 태그의 끝에 새 li를
추가하는 버튼을 만드세요.
세 개의 입력 필드와 버튼을 만드세요.
버튼을 클릭하면 입력 데이터로부터 새로운
li를 만들어 ul 태그의 끝에 추가하세요.