Mengendalikan "Ini" yang Tidak Ditakrifkan dalam Fungsi Komponen Reaksi
Soalan ini berpunca daripada isu di mana "ini" tidak ditakrifkan dalam fungsi komponen komponen React.
Dalam contoh yang disediakan, masalah berlaku dalam fungsi onToggleLoop. Apabila fungsi ini dilaksanakan, "ini" tidak ditentukan dalam komponen. Ini kerana React tidak mengikat kaedah secara automatik kepada komponen.
Untuk menyelesaikan isu ini, kita perlu mengikat kaedah secara manual dalam pembina menggunakan fungsi bind(this). Begini cara anda boleh melakukannya:
constructor(props) { super(props); this.state = { loopActive: false, shuffleActive: false, }; this.onToggleLoop = this.onToggleLoop.bind(this); }
Dengan mengikat kaedah onToggleLoop dalam pembina, kami memastikan bahawa apabila ia dilaksanakan, "ini" akan merujuk kepada contoh komponen. Ini membolehkan kami mengakses keadaan komponen dan prop dalam fungsi itu.
Sebaik sahaja anda membuat perubahan ini, objek "ini" tidak lagi tidak ditentukan dalam fungsi onToggleLoop dan anda seharusnya boleh mengemas kini loopActive nyatakan seperti yang dijangkakan.
Atas ialah kandungan terperinci Mengapa 'ini' tidak ditentukan dalam Fungsi Komponen Reaksi saya, dan bagaimana saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!