Rumah >hujung hadapan web >tutorial js >Bagaimana untuk mengemas kini objek secara kekal dalam tatasusunan dalam keadaan bertindak balas?

Bagaimana untuk mengemas kini objek secara kekal dalam tatasusunan dalam keadaan bertindak balas?

Barbara Streisand
Barbara Streisandasal
2024-12-05 20:23:10317semak imbas

How to Immutably Update Objects within Arrays in React State?

Mengemas kini Objek Keadaan dalam Tatasusunan ReactJS

Apabila bekerja dengan tatasusunan sebagai sebahagian daripada keadaan aplikasi, anda mungkin menghadapi keperluan untuk mengemas kini objek individu dalam tatasusunan tersebut. Ini adalah tugas biasa apabila mengurus data pengguna, nilai borang atau kandungan dinamik lain.

Mengendalikan Kemas Kini Negeri

Dalam contoh yang disediakan, komponen CommentBox ditakrifkan dengan keadaan awal yang mengandungi tatasusunan objek komen. Fungsi handleCommentEdit bertanggungjawab untuk mengemas kini ulasan dengan id dan teks yang ditentukan.

Ketidakbolehubahan dalam React

Salah satu prinsip teras React ialah penggunaan keadaan tidak berubah. Ini bermakna objek keadaan asal tidak boleh diubah secara langsung. Sebaliknya, objek keadaan baharu mesti dibuat dengan perubahan yang dikehendaki.

Mengemas kini Objek Menggunakan Object.assign

Satu pendekatan untuk mengemas kini objek dalam tatasusunan ialah menggunakan kaedah Object.assign. Kaedah ini mengambil objek sedia ada sebagai argumen pertama dan argumen seterusnya sebagai pasangan nilai kunci yang harus digabungkan ke dalam objek asal. Objek yang terhasil ialah objek baharu dengan perubahan yang dikehendaki.

Dalam coretan kod yang disediakan, pendekatan ini dilaksanakan seperti berikut:

handleCommentEdit: function(id, text) {
    this.setState({
      data: this.state.data.map(el => (el.id === id ? Object.assign({}, el, { text }) : el))
    });
}

Mengemas kini Objek Menggunakan Spread

Dalam ES2018 dan kemudian, operator spread (...) boleh digunakan untuk mencapai hasil yang serupa dengan Object.assign. Operator spread menggabungkan sifat objek sedia ada dengan pasangan nilai kunci yang disediakan.

Coretan kod berikut menunjukkan cara menggunakan operator spread untuk mengemas kini objek ulasan:

this.setState({
  data: this.state.data.map(el => (el.id === id ? {...el, text} : el))
});

Kesimpulan

Teknik ini membolehkan anda mengemas kini objek individu dengan mudah dalam tatasusunan dalam ReactJS, sementara mematuhi prinsip kebolehubah rangka kerja.

Atas ialah kandungan terperinci Bagaimana untuk mengemas kini objek secara kekal dalam tatasusunan dalam keadaan bertindak balas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn