我对此代码有疑问:https : //github.com/reactjs/redux/blob/master/examples/async/containers/App.js
特别:
constructor(props) { super(props) this.handleChange = this.handleChange.bind(this) this.handleRefreshClick = this.handleRefreshClick.bind(this) }
我猜这是一个两部分的问题。
this.handleChange =
onClick={handleRefreshClick}>
this.handleRefreshClick.bind(this)
谢谢
以相反的顺序回答…
this.handleRefreshClick.bind(something)返回一个新函数,其中对的引用this将引用something。这是一种保存的当前值的方法this,该值在调用构造函数期间处于作用域内,以便稍后在调用函数时可以使用它。
this.handleRefreshClick.bind(something)
this
something
如果您的函数不需要访问组件的状态,那么可以肯定,您不需要绑定它们。
支持将这些行添加到构造函数的观点是,每个类的实例仅创建一次新的绑定函数。您也可以使用
onClick={this.handleRefreshClick.bind(this)}
或(ES6):
onClick={() => this.handleRefreshClick()}
但是,每次重新渲染组件时,这两种方法都会创建一个新函数。