Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengemas kini Keadaan Komponen Induk daripada Komponen Anak dalam React?

Bagaimana untuk Mengemas kini Keadaan Komponen Induk daripada Komponen Anak dalam React?

Linda Hamilton
Lepaskan: 2024-12-10 00:29:11
asal
336 orang telah melayarinya

How to Update Parent Component State from a Child Component in React?

Meluluskan Kemas Kini Negeri Induk melalui Fungsi Panggilan Balik dalam React

Apabila bekerja dengan komponen React bersarang, ia mungkin menjadi perlu untuk mengemas kini keadaan sesuatu komponen induk dari dalam komponen anak. Memandangkan prop tidak boleh diubah, memberikan nilai secara langsung kepada mereka tidak boleh dilaksanakan.

Dalam senario sedemikian, pendekatan alternatif melibatkan penghantaran fungsi kepada komponen anak yang membolehkannya mengemas kini keadaan induk. Ini boleh dicapai seperti berikut:

// Parent Component
class Parent extends React.Component {
  constructor(props) {
    super(props);

    this.handler = this.handler.bind(this);
  }

  handler() {
    this.setState({
      someVar: 'some value',
    });
  }

  render() {
    return <Child handler={this.handler} />;
  }
}

// Child Component
class Child extends React.Component {
  render() {
    return <Button onClick={this.props.handler} />;
  }
}
Salin selepas log masuk

Melalui mekanisme ini, komponen anak boleh menggunakan fungsi yang disediakan melalui prop dan mengemas kini keadaan ibu bapa.

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa anda struktur komponen mungkin perlu dinilai semula. Komponen 5 dan 3 dalam contoh anda nampaknya tidak mempunyai hubungan langsung.

Satu penyelesaian yang berpotensi ialah memperkenalkan komponen peringkat lebih tinggi yang merangkumi kedua-dua komponen 5 dan 3. Komponen induk ini boleh mengekalkan keadaan yang berkaitan dengan kedua-dua komponen kanak-kanak dan turunkannya melalui prop.

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Keadaan Komponen Induk daripada Komponen Anak 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