javascript - 为什么我必须将它绑定到 Reactjs 的类组件中的方法
问题描述
我已经搜索并阅读了这个问题很长时间,但仍然无法理解。因此,在 React 类组件中,您将编写如下方法:
class Test extends React.Component {
constructor(props){
super(props)
this.method = this.method.bind(this)
}
method() {
...
}
}
如果“this”默认没有绑定,为什么我们可以使用“this.method”呢?“this”在“this.method”和“bind.(this)”中是什么意思。他们是一样的吗?
这条线:this.method = this.method.bind(this)
真的让我很困惑。请帮我解释这一行中的 3 个“this”中的每一个。谢谢。
解决方案
当您将方法传递给子组件时,将方法绑定到“this”很有用。当你这样做的时候,通常是为了在子组件执行这个方法时能够改变父组件的本地状态。有点像说
“我希望这个方法绑定到这个类,也就是说,如果它是从任何地方调用的,那么这个方法内部对“this”的引用就是指这个类”
这是一篇有趣的文章,详细解释了这一点:
https ://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and-this/
推荐阅读
- flutter - Flutter Dart Bottomsheet 错误上下文 = 上下文
- python - Psycopg2 在类内自动重新连接
- jenkins - 并行阶段声明性管道内的选择参数
- python - 带有 pandas 和 altair 的表格气泡图
- python - 使用 Spotipy 将曲目添加到播放列表时出现多个错误
- python - 使用 Beautiful Soup 从 YouTube 播放列表中抓取曲目的链接
- reactjs - Eslint 阻止提交,终端永远卡在“正在运行 eslint ...”
- sql - 根据其他列值的条件创建对其他列求和的列?
- webm - 如何将 webm 的持续时间元数据值计算为十六进制?
- excel - 是否有不需要文本的 Excel 函数 CONCATENATE 的替代方法?