Operasi Reaktif pada Array Objek di React

Sekarang mari kita belajar melakukan operasi reaktif terhadap array objek. Dalam kasus ini, kita harus meneruskan id elemen array ke fungsi, yang akan kita lakukan sesuatu dengannya:

jsxfunction 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>
      
      <button onClick={() => doSmth(note.id)}>
        btn
      </button>
    </li>;
  });
  
  return <div>
    <ul>
      {result}
    </ul>
  </div>;
}

Untuk melakukan sesuatu pada sebuah elemen, pertama-tama kita harus mencarinya dengan mengiterasi seluruh array:

jsxfunction App() {
  ...
  
  function doSmth(id) {
    setNotes(notes.map(note => {
      if (note.id === id) {
        // lakukan sesuatu pada elemen
      }
      
      return note;
    }));
  }
}

Sebagai contoh, mari kita ubah teks dari objek yang ditemukan:

jsxfunction App() {
  ...
  
  function doSmth(id) {
    setNotes(notes.map(note => {
      if (note.id === id) {
        note.prop1 += '!';
        note.prop2 += '!';
        note.prop3 += '!';
        
        return note;
      }
      
      return note;
    }));
  }
}
Задание 1

Buat tombol di akhir setiap li, yang ketika ditekan akan menghapus li tersebut dari daftar.

Задание 2

Diberikan tiga input. Buat tombol di akhir setiap li, yang ketika ditekan, data objek dari li tersebut akan dimasukkan ke dalam input yang sesuai.

Задание 3

Modifikasi tugas sebelumnya sehingga ada tombol di sebelah input, yang ketika ditekan, data dari input akan dimasukkan ke dalam li yang sesuai.