84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
<button onClick={this.handleEvent}> //这里的this是toggle组件 为什么还需要在组件里绑定这个函数的this {this.state.isToggleOn === true ? 'on' : 'off'} </button>
Ich kann die Bindung hier nicht verstehen
光阴似箭催人老,日月如移越少年。
因为在class中声明函数,并不会自动绑定this对象
class
this
所以,你在onClick={this.handleEvent}的时候,分解成两步你就懂了:
onClick={this.handleEvent}
let handleEvent = this.handleEvent; ...onClick={handleEvent}...
所以,onClick调用的时候,handleEvent中的this会是undefined(根据文档)
onClick
handleEvent
undefined
所以,你需要bind一下, 那么里面的this就是当前组件啦。
bind
还有一种方便的写法,就是用箭头函数声明:
handleEvent = (e)=>{ } render(){ ...onClick={this.handleEvent}... }
因为handleEvent中this.setState...的this并没有绑定this
可以采用箭头函数的语法糖来绑定this
handleEvent = () => { this.setState... }
因为在
class
中声明函数,并不会自动绑定this
对象所以,你在
onClick={this.handleEvent}
的时候,分解成两步你就懂了:所以,
onClick
调用的时候,handleEvent
中的this
会是undefined
(根据文档)所以,你需要
bind
一下, 那么里面的this
就是当前组件啦。还有一种方便的写法,就是用箭头函数声明:
因为handleEvent中this.setState...
的this并没有绑定this
可以采用箭头函数的语法糖来绑定this