Rumah > hujung hadapan web > tutorial js > Mengapa 'ini' tidak ditentukan dalam Fungsi Komponen Bertindak balas, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa 'ini' tidak ditentukan dalam Fungsi Komponen Bertindak balas, dan Bagaimana Saya Boleh Membetulkannya?

Patricia Arquette
Lepaskan: 2024-12-11 00:31:10
asal
639 orang telah melayarinya

Why is

Memahami "ini" dalam Fungsi Komponen React

Apabila bekerja dengan React, anda mungkin menghadapi ralat "ini tidak ditentukan dalam fungsi komponen." Ini berlaku apabila anda cuba mengakses objek ini dalam fungsi komponen dan ia tidak ditentukan.

Dalam ES6 React.Component, kaedah tidak terikat secara automatik pada komponen itu sendiri. Sebaliknya, anda perlu mengikatnya secara eksplisit dalam pembina. Untuk menyelesaikan isu yang dinyatakan dalam contoh, anda boleh menggunakan langkah berikut:

  1. Ikat Kaedah dalam Pembina:
    Dalam pembina, tambahkan baris berikut untuk mengikat kaedah onToggleLoop:

    this.onToggleLoop = this.onToggleLoop.bind(this);
    Salin selepas log masuk
  2. Kemas kini Komponen:
    Kemas kini komponen anda dengan pembina yang diubah suai seperti berikut:

    class PlayerControls extends React.Component {
      constructor(props) {
        super(props)
    
        this.state = {
          loopActive: false,
          shuffleActive: false,
        }
    
        this.onToggleLoop = this.onToggleLoop.bind(this);
      }
    
      // ... rest of the code
    }
    Salin selepas log masuk

Dengan mengikat kaedah onToggleLoop dalam pembina, anda memastikan bahawa ini merujuk kepada contoh komponen yang betul apabila kaedah digunakan. Ini membolehkan anda berjaya mengemas kini keadaan loopActive dan melaksanakan prop onToggleLoop yang diluluskan oleh komponen induk.

Atas ialah kandungan terperinci Mengapa 'ini' tidak ditentukan dalam Fungsi Komponen Bertindak balas, dan Bagaimana Saya Boleh Membetulkannya?. 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