React에서의 반응형 데이터 표시

객체 배열이 있고, 그 안에 무언가의 이름과 설명이 포함되어 있다고 가정해 봅시다:

jsxconst initNotes = [
  {
    id: id(),
    name: 'name1',
    desc: 'long description 1'
  },
  {
    id: id(),
    name: 'name2',
    desc: 'long description 2'
  },
  {
    id: id(),
    name: 'name3',
    desc: 'long description 3'
  },
];

이 배열의 각 요소를 별도의 단락에 출력해 보겠습니다:

jsxfunction App() {
  const [notes, setNotes] = useState(initNotes);
  
  const result = notes.map(note => {
    return <p key={note.id}>
      {note.name}, 
      <i>{note.desc}</i>
    </p>;
  });
  
  return <div>
    {result}
  </div>;
}

이제 설명이 처음에는 숨겨져 있지만, 각 단락 끝에 해당 단락의 설명을 표시하기 위한 버튼을 추가해 봅시다. 이를 위해 각 제품 객체에 설명 표시를 제어하는 속성 show를 추가합니다:

jsxconst initNotes = [
  {
    id: id(),
    name: 'name1',
    desc: 'long description 1',
    show: false,
  },
  {
    id: id(),
    name: 'name2',
    desc: 'long description 2',
    show: false,
  },
  {
    id: id(),
    name: 'name3',
    desc: 'long description 3',
    show: false,
  },
];
Задание 1

각 단락 끝에 버튼을 만들어, 클릭하면 해당 제품의 전체 설명이 표시되도록 하세요.