Rumah >hujung hadapan web >tutorial js >Mengapa Saya Mendapat 'Uncaught TypeError: Tidak dapat membaca 'setState' of undefined' dalam React?

Mengapa Saya Mendapat 'Uncaught TypeError: Tidak dapat membaca 'setState' of undefined' dalam React?

DDD
DDDasal
2024-11-04 22:09:021008semak imbas

Why Am I Getting

React - Uncaught TypeError: Tidak Dapat Mengakses 'setState' pada Undefined Object

Apabila cuba mengemas kini keadaan komponen React, pembangun mungkin menghadapi ralat berikut:

Uncaught TypeError: Cannot read property 'setState' of undefined

Ralat ini berlaku apabila kaedah komponen React yang bertanggungjawab untuk mengubah suai keadaan tidak terikat pada contoh komponen. Untuk menyelesaikan isu ini, ikut langkah berikut:

  1. Tentukan keadaan dalam pembina komponen:
<code class="javascript">constructor(props) {
    super(props);

    this.state = {
        count: 1
    };
}</code>
  1. Ikat kaedah komponen pada contoh komponen:
<code class="javascript">this.delta = this.delta.bind(this);</code>
  1. Dalam kaedah komponen, pastikan ini merujuk kepada contoh komponen. Ini boleh dicapai dengan menggunakan fungsi anak panah atau mengikat kaedah secara manual dalam pembina:
<code class="javascript">delta() {
    this.setState({
        count: this.state.count + 1
    });
}</code>
  1. Gunakan kaedah komponen terikat dalam fungsi render:
<code class="javascript">render() {
    return (
        <div>
            <h1>{this.state.count}</h1>
            <button onClick={this.delta}>+</button>
        </div>
    );
}</code>

Dengan mengikuti langkah-langkah ini, kaedah komponen akan diikat dengan betul dan akan dapat mengakses kaedah setState() tanpa menghadapi ralat objek yang tidak ditentukan.

Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Uncaught TypeError: Tidak dapat membaca 'setState' of undefined' dalam React?. 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