<button onClick={this.handleEvent}> //这里的this是toggle组件 为什么还需要在组件里绑定这个函数的this {this.state.isToggleOn === true ? 'on' : 'off'} </button>
Saya tidak dapat memahami pengikatan ini di sini
光阴似箭催人老,日月如移越少年。
Sebab dalam class中声明函数,并不会自动绑定thisobjek
class
this
Jadi, apabila anda onClick={this.handleEvent}, pecahkannya kepada dua langkah dan anda akan faham:
onClick={this.handleEvent}
let handleEvent = this.handleEvent; ...onClick={handleEvent}...
Jadi, onClick调用的时候,handleEvent中的this会是undefined (mengikut dokumentasi)
onClick
handleEvent
undefined
Jadi, apa yang anda perlukanbind一下, 那么里面的this ialah komponen semasa.
bind
Terdapat juga cara mudah untuk menulisnya, iaitu mengisytiharkannya dengan fungsi anak panah:
handleEvent = (e)=>{ } render(){ ...onClick={this.handleEvent}... }
Kerana this.setState... dalam handleEvent tidak terikat dengan ini
Anda boleh menggunakan gula sintaksis fungsi anak panah untuk mengikat ini
handleEvent = () => { this.setState... }
Sebab dalam
class
中声明函数,并不会自动绑定this
objekJadi, apabila anda
onClick={this.handleEvent}
, pecahkannya kepada dua langkah dan anda akan faham:Jadi,
onClick
调用的时候,handleEvent
中的this
会是undefined
(mengikut dokumentasi)Jadi, apa yang anda perlukan
bind
一下, 那么里面的this
ialah komponen semasa.Terdapat juga cara mudah untuk menulisnya, iaitu mengisytiharkannya dengan fungsi anak panah:
Kerana this.setState...
dalam handleEvent tidak terikat dengan ini
Anda boleh menggunakan gula sintaksis fungsi anak panah untuk mengikat ini