cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Komponen mengikat ini dalam React

<button onClick={this.handleEvent}>    //这里的this是toggle组件 为什么还需要在组件里绑定这个函数的this 
  {this.state.isToggleOn === true ? 'on' : 'off'}
</button>

Saya tidak dapat memahami pengikatan ini di sini

大家讲道理大家讲道理2715 hari yang lalu758

membalas semua(2)saya akan balas

  • 三叔

    三叔2017-06-28 09:28:21

    Sebab dalam class中声明函数,并不会自动绑定thisobjek

    Jadi, apabila anda onClick={this.handleEvent}, pecahkannya kepada dua langkah dan anda akan faham:

    let handleEvent = this.handleEvent;
    ...onClick={handleEvent}...

    Jadi, onClick调用的时候,handleEvent中的this会是undefined (mengikut dokumentasi)

    Jadi, apa yang anda perlukanbind一下, 那么里面的this ialah komponen semasa.

    Terdapat juga cara mudah untuk menulisnya, iaitu mengisytiharkannya dengan fungsi anak panah:

    handleEvent = (e)=>{
    
    }
    
    render(){
      ...onClick={this.handleEvent}...
    }

    balas
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-28 09:28:21

    Kerana this.setState...
    dalam handleEvent tidak terikat dengan ini

    Anda boleh menggunakan gula sintaksis fungsi anak panah untuk mengikat ini

    handleEvent = () => {
        this.setState...
    }

    balas
    0
  • Batalbalas