如上两图:在react组件中,已知其他环境都相同,仅仅是图1多了一层箭头函数,问:为何在本组件的scroll方法中,图1形式取到this是本组件,图2形式this却是undefined?
2 回答
BIG阳
TA贡献1859条经验 获得超6个赞
这个问题得从class
说起。
当定义React组件时,extends React.Component
时,不会将this
继承下来。所以你的第二个图是this
是undefined
.
而ES6中的arrow function呢,默认在定义的时候会绑定this
。
使用this
一般有两种做法。
直接使用箭头函数
在constructor中绑定。
class {
constructor() {
super(...arguments);
this.myFunction = this.myFunction.bind(this);
}
render() {
return(
<div onClick={this.myFunction}></div>
)
}
myFunction() {
//
}
}
添加回答
举报
0/150
提交
取消