Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengemas kini Objek dengan Elegan dalam Array dalam ReactJS?

Bagaimana untuk Mengemas kini Objek dengan Elegan dalam Array dalam ReactJS?

Barbara Streisand
Lepaskan: 2024-12-15 03:35:08
asal
822 orang telah melayarinya

How to Elegantly Update Objects within Arrays in ReactJS?

Kemas Kini Objek Elegan dalam Tatasusunan untuk ReactJS

Dalam ReactJS, mengurus tatasusunan objek dalam keadaan aplikasi anda boleh menjadi senario biasa. Satu tugas sedemikian ialah mengemas kini objek tertentu dalam tatasusunan, yang boleh menimbulkan cabaran tanpa pemahaman yang jelas tentang teknik yang tersedia.

Contoh Senario

Pertimbangkan React berikut contoh komponen:

var CommentBox = React.createClass({
  getInitialState: function() {
    return {
      data: [
        { id: 1, author: "john", text: "foo" },
        { id: 2, author: "bob", text: "bar" },
      ],
    };
  },
  handleCommentEdit: function(id, text) {
    // Handle updating of the object inside the array
  },
});
Salin selepas log masuk

Objektifnya adalah untuk mengemas kini objek dalam this.state.data apabila kaedah handleCommentEdit adalah dipanggil, secara khusus mengubah suai sifat teks.

Pendekatan Object.assign()

Kaedah yang biasa digemari ialah menggunakan Object.assign(). Ia menawarkan cara ringkas untuk mengemas kini objek sedia ada tanpa membuat objek baharu.

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

Di sini, kami mengulangi setiap elemen dalam this.state.data. Jika id elemen sepadan dengan id yang disediakan, kami mencipta objek baharu dengan menggabungkan el asal dengan teks yang dikemas kini menggunakan Object.assign(). Jika tidak, kami mengembalikan elemen asal.

Pendekatan Operator Spread

Untuk pendekatan yang lebih moden, anda boleh menggunakan operator spread ES2018:

handleCommentEdit: function(id, text) {
  this.setState({
    data: this.state.data.map(el => (el.id === id ? { ...el, text } : el)),
  });
}
Salin selepas log masuk

Serupa dengan kaedah Object.assign(), kami menggunakan operator spread untuk mencipta objek baharu, menggabungkan objek asal dengan sifat teks yang dikemas kini.

Kedua-dua pendekatan Object.assign() dan operator spread menyediakan cara yang cekap dan elegan untuk mengemas kini objek dalam tatasusunan sambil mengekalkan kebolehubahan dalam aplikasi ReactJS.

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Objek dengan Elegan dalam Array dalam ReactJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan