我什么时候做
<CustomComponent function = {this.FunctionName}/>
而不是 <CustomComponent function = {this.FunctionName.bind(this)}
?
React 的文档提到 bind()
解决了这个有问题的不平等:
obj.method();
=/= var method = obj.method; method();
.第二次调用方法与第一次调用有何不同?它不能访问它被调用的对象实例的实例变量等吗?此外,bind()
中的参数到底是什么? - 即是 this.FunctionName.bind(this)
绑定(bind)到 FunctionName
?
最佳答案
每当您创建一个新函数(箭头函数除外)时,您都会创建它自己的 this
实例。 .所以在里面你不能使用父级的 this
的范围
Bind 创建了一个新的函数,它将有 this
设置为传递给 bind()
的第一个参数.
所以如果在这里 <CustomComponent function = {this.FunctionName.bind(this)}
你通过 parent 的 this
.
这样做是为了让您可以在函数内引用状态。如果您不想使用绑定(bind),那么您可以将函数设为箭头函数。
关于javascript - 请简单解释我何时/为什么需要使用 bind(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59350539/