我正在使用react和我已经阅读了大量有关如何正确使用它并避免不必要的重新渲染的文章,其中一个主题是将功能传递给组件的方式。所以基本上我们需要避免传递函数的不同实例是这样的:React - 如何正确传递和调用接受参数到组件的函数
<Component onClick={() => ... }/>
或
<Component onClick={this.method.bind(this)} />
,你应该在构造函数结合,只是通过如下:
this.method = this.method.bind(this);
<Component onClick={this.method} />
这是非常有意义的,但现在,我有一个方法,接受参数:
onPropertyChange(field, event) {
...
}
而且我想通过每当值改变的输入来调用此方法,我设法做到这一点的唯一方法是这样的:
<input onChange={this.onPropertyChange.bind(this, 'id')} />
完美的作品,因为它结合了功能,我的组件,通过领域和事件。 但是这样每次都会传递一个不同的实例,这会导致不必要的重新渲染。
那么我该如何正确地做,避免不必要的重新渲染。
将它绑定到渲染方法之外。 –
你的意思是把'id'作为一个字符串打包在引号中或者是一个错字?如果它是一个静态值(例如字符串),你可以像你所说的那样将它绑定到渲染之外,但是我认为它是一个变量? – Chris
@DanPrince怎么样?因为如果我将它绑定在ctor中,我将如何将它传递给组件? 你能举个例子吗? – Pachu