Rumah > Soal Jawab > teks badan
<button onClick={this.handleEvent}> //这里的this是toggle组件 为什么还需要在组件里绑定这个函数的this
{this.state.isToggleOn === true ? 'on' : 'off'}
</button>
Saya tidak dapat memahami pengikatan ini di sini
三叔2017-06-28 09:28:21
Sebab dalam class
中声明函数,并不会自动绑定this
objek
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}...
}
给我你的怀抱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...
}