我正在将 React 组件更新到 ES6 并遇到了这个问题中描述的问题 -无法访问事件处理程序内的 React 实例(this) - 即未绑定到组件实例。
这是有道理的,当然有效,但我对答案的另一部分感到困惑:
请注意,绑定一个函数会创建一个新函数。你可以直接在渲染中绑定它,这意味着每次组件渲染时都会创建一个新函数,或者在你的构造函数中绑定它,它只会触发一次。
constructor() { this.changeContent = this.changeContent.bind(this); }
对比
render() { return <input onChange={this.changeContent.bind(this)} />; }
我假设构造函数中的绑定是性能等的首选方法,但您知道他们对假设的看法!
这两种方法的权衡是什么?有没有一种情况肯定比另一个好?或者没关系?