<button onClick={this.handleEvent}> //这里的this是toggle组件 为什么还需要在组件里绑定这个函数的this {this.state.isToggleOn === true ? 'on' : 'off'}</button>想不明白这里的this绑定
1 回答
繁星淼淼
TA贡献1775条经验 获得超11个赞
因为在class中声明函数,并不会自动绑定this对象
所以,你在onClick={this.handleEvent}的时候,分解成两步你就懂了:
let handleEvent = this.handleEvent;
...onClick={handleEvent}...所以,onClick调用的时候,handleEvent中的this会是undefined(根据文档)
所以,你需要bind一下, 那么里面的this就是当前组件啦。
还有一种方便的写法,就是用箭头函数声明:
handleEvent = (e)=>{
}
render(){
...onClick={this.handleEvent}...
}
添加回答
举报
0/150
提交
取消
