this.handleMouseMove = this.handleMouseMove.bind(this); 上面这一句怎么理解?handleMouseMove不是本来就在这个组件上吗?不是借用其他组件的,为什么还要在构造函数中重新绑定this。一直没有看明白,请高人指点
this.handleMouseMove = this.handleMouseMove.bind(this); 上面这一句怎么理解?handleMouseMove不是本来就在这个组件上吗?不是借用其他组件的,为什么还要在构造函数中重新绑定this。一直没有看明白,请高人指点
这是js中 this 指向问题,可以参考这个: https://developer.mozilla.org...
this.handleMouseMove.bind(this) 是给 handleMouseMove 绑定上下文的,可以将这行代码删掉,再运行看看效果。对比一下就理解了。
因为 handleMouseMove 不是在MouseTrack实例里调用的, 不加bind(this)的话, 被调用时它里面的this就不是MouseTrack实例里
你试下去掉bind(this), 然后再handleMouseMove打印下this就知道了
4 回答576 阅读✓ 已解决
1 回答851 阅读✓ 已解决
1 回答1.1k 阅读
2 回答773 阅读
2 回答617 阅读
2 回答601 阅读
1 回答677 阅读
其实你可以先尝试一下,就不bind,看看执行效果是什么样的。然后思考一下为什么。
不过最终还是要回归到文档,毕竟这个人家还是挺细致的描述了原因,已经推荐的方式。可能这是个细节,不过也提示你需要更加仔细的查看文档了。
https://reactjs.org/docs/hand...