Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengemas kini Sifat Negeri Bersarang dengan Betul dalam React?

Bagaimana untuk Mengemas kini Sifat Negeri Bersarang dengan Betul dalam React?

Mary-Kate Olsen
Lepaskan: 2024-12-25 15:26:13
asal
652 orang telah melayarinya

How to Correctly Update Nested State Properties in React?

Mengubah suai Sifat Keadaan Bersarang dalam React

Sifat keadaan bersarang menyediakan organisasi logik untuk struktur keadaan kompleks dalam React. Walau bagaimanapun, cubaan mengemas kini sifat ini secara langsung menggunakan this.setState tidak menghasilkan hasil yang diingini.

Penyelesaian:

Untuk mengemas kini sifat keadaan bersarang dengan betul, ikut langkah ini untuk memelihara kebolehubahan negeri:

  1. Buat Salin:

    • Salin sifat bersarang ke dalam pembolehubah baharu menggunakan operator hamparan, cth., var someProperty = {...this.state.someProperty}.
  2. Ubah suai Salin:

    • Buat perubahan yang diperlukan pada sifat yang disalin, cth., someProperty.flag = true.
  3. Kemas kini Keadaan:

    • Kemas kini keadaan komponen dengan menetapkannya kepada salinan yang diubah suai, cth., this.setState({someProperty}).

Untuk Negeri Sangat Bersarang:

Jika keadaan sangat bersarang, adalah tidak praktikal untuk menggunakan pengendali penyebaran pada setiap peringkat. Pertimbangkan untuk menggunakan pakej immutability-helper untuk kemas kini yang lebih elegan:

this.setState(prevState => ({
  ...prevState,
  someProperty: {
    ...prevState.someProperty,
    someOtherProperty: {
      ...prevState.someProperty.someOtherProperty,
      anotherProperty: {
        ...prevState.someProperty.someOtherProperty.anotherProperty,
        flag: false
      }
    }
  }
}));
Salin selepas log masuk

Immutability-Helper:

Pakej immutability-helper menyediakan sintaks yang lebih ringkas dan intuitif untuk mengemas kini sifat keadaan bersarang:

import {update} from "immutability-helper";
this.setState(update(this.state, {
  someProperty: {
    someOtherProperty: {
      anotherProperty: {
        flag: {$set: false}
      }
    }
  }
}));
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Sifat Negeri Bersarang dengan Betul dalam React?. 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