Uncaught TypeError: Cannot Read Property 'setState' of Undefined in React
Menghadapi ralat "Uncaught TypeError: Cannot read property 'setState' of undefined" dalam React boleh mengecewakan. Ralat ini biasanya timbul apabila cuba mengemas kini keadaan komponen yang belum dimulakan atau diikat dengan betul. Mari kita terokai isu dan penyelesaiannya secara terperinci.
Penerangan Masalah
Ralat berpunca daripada percubaan untuk mengakses kaedah 'setState' pada contoh kelas yang tidak ditentukan. Dalam kod yang disediakan:
class Counter extends React.Component { constructor(props) { super(props); this.state = { count : 1 }; this.delta.bind(this); } ... }
Fungsi 'delta' belum terikat pada contoh komponen. Akibatnya, 'ini' dalam 'delta' menjadi tidak ditentukan, membawa kepada ralat apabila memanggil 'setState'.
Penyelesaian
Penyelesaian terletak pada mengikat 'delta' berfungsi kepada contoh komponen dalam pembina. Berikut ialah kod yang diperbetulkan:
class Counter extends React.Component { constructor(props) { super(props); this.state = { count : 1 }; **this.delta = this.delta.bind(this);** } ... }
Dengan mengikat 'delta' dalam pembina, kami memastikan bahawa 'ini' dalam fungsi merujuk kepada contoh komponen, membolehkannya mengakses dan mengubah suai keadaannya menggunakan 'setState' .
Kesimpulan
Kaedah kelas mengikat adalah penting untuk memastikan akses yang betul kepada sifat dan keadaan dalam komponen React. Kegagalan untuk mengikat boleh membawa kepada ralat masa jalan, seperti yang ditunjukkan oleh 'Uncaught TypeError: Cannot read property 'setState' of undefined' issue.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Uncaught TypeError: Cannot Read Property 'setState' of Undefined' Ralat dalam React?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!