搜索
javascript - React中组件绑定this
大家讲道理
大家讲道理 2017-06-28 09:26:21
[JavaScript讨论组]

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

想不明白这里的this绑定

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
三叔

因为在class中声明函数,并不会自动绑定this对象

所以,你在onClick={this.handleEvent}的时候,分解成两步你就懂了:

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

所以,onClick调用的时候,handleEvent中的this会是undefined(根据文档)

所以,你需要bind一下, 那么里面的this就是当前组件啦。

还有一种方便的写法,就是用箭头函数声明:

handleEvent = (e)=>{

}

render(){
  ...onClick={this.handleEvent}...
}
给我你的怀抱

因为handleEvent中this.setState...
的this并没有绑定this

可以采用箭头函数的语法糖来绑定this

handleEvent = () => {
    this.setState...
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号