javascript - 在这个 React 应用程序示例中,bind(this) 到底在做什么?
问题描述
我不太确定.bind(this)
在这个例子中究竟在做什么?它是否只是将指定的函数连接到代码的其他组件,例如this.state
?
constructor(props) {
super(props);
this.state = {
input: '',
messages: []
}
this.handleChange = this.handleChange.bind(this);
this.submitMessage = this.submitMessage.bind(this);
}
解决方案
“bind”方法用于在触发时将上下文(例如“this”)传递给javascript函数。
在这种情况下,react组件的“this”传递给构造函数中的“handleChange”方法,
所以当“handleChange”将被调用时,如果在其代码中使用“this”,“this”将获取父组件的值。
handleCahnge() {
this.sendSomethingToServer(); // this is react component
}
否则,(不使用“绑定”)如果某个事件触发了函数,则上下文将是事件的上下文(这将是事件目标元素而不是组件)
如果您使用箭头函数语法,则可以避免使用“绑定”语法:
handleCange = () => { this.sendSomethingToServer() };
推荐阅读
- python - PYQT 检测小部件上的鼠标位置
- python - 动态 Web 元素帮助 - Selenium Python
- android - 屏幕旋转后返回 MainActivity 时应用程序崩溃
- vue.js - 基于两个字段的Vuelidate验证
- oracle - 如何知道外部表的数据文件是否在增加
- visual-studio-2019 - 如何更改活动和非活动窗口的 Visual Studio 2019 IDE 标题栏颜色
- c# - 如何截取主窗口的一部分?C# WPF
- regex - 正则表达式无效,在 <<>> 之间找到匹配项
- java - 通过基于级别的树遍历另一个树来创建 n 叉树
- flutter - 将 ChangeNotifier 与 FutureProvider 集成