我注意到在很多React代码示例中,您会看到如下内容:
class Foo extends Component {
constructor() {
this.someMethod = this.someMethod.bind(this);
}
someMethod() {
}
<Bar doSomething={this.someMethod} />
}
我看到的其他例子如下:
class Foo extends Component {
someMethod() {
}
<Bar doSomething={this.someMethod} />
}
这两种模式都能达到相同的效果吗?使用一个与另一个相比有不利之处吗?
答案 0 :(得分:3)
所以这取决于方法的作用。如果方法在引用组件时引用this
,则应该在构造函数中绑定它,以便词法上下文正确。否则该方法会引发错误。
如果方法没有引用this
,则无需绑定方法。
或者,您可以使用此模式:
someMethod = () => {}
由于胖箭头功能没有词汇this