请简单解释我何时/为什么需要使用 bind()

Sto*_*ent 2 javascript reactjs

我什么时候做 <CustomComponent function = {this.FunctionName}/>

而不是<CustomComponent function = {this.FunctionName.bind(this)}

React 的文档提到bind()解决了这个有问题的不等式: obj.method();=/= var method = obj.method; method();。对方法的第二次调用与第一次调用有何不同?它是否无法访问正在调用它的对象实例的实例变量等?另外, a 中的参数到底是什么bind()- 即this.FunctionName.bind(this)绑定到FunctionName

Ati*_*ngh 5

每当您创建一个新函数(箭头函数除外)时,您都会创建它自己的this. 所以在它里面你不能使用 parent 的范围this

Bind 创建一个新函数,该函数将this设置为传递给 的第一个参数bind()

所以如果在这里<CustomComponent function = {this.FunctionName.bind(this)}你通过父母的this.

这样做是为了您可以引用函数内部的状态。如果你不想使用绑定,那么你可以让你的函数箭头函数。