bind在这个反应例中做了什么?

won*_*rld 4 reactjs

bind在这个语句中做了什么this.tick.bind(this)在下面的代码中:

export class Counter extends React.Component {
  constructor(props) {
    super(props);
    this.state = {count: props.initialCount};
  }
  tick() {
    this.setState({count: this.state.count + 1});
  }
  render() {
    return (
      <div onClick={this.tick.bind(this)}>
        Clicks: {this.state.count}
      </div>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

代码来自React站点.

Oak*_*ley 10

.bind()设置this用于创建的函数,作为传入的参数.文档在这里.

在这种情况下,它设置this的的tick()功能是render()功能的上下文.

您可以这样做,因为当一个函数用作DOM事件处理程序时,它this被设置为调度DOM事件的元素.你想要保证this你所期望的那个,因为它已被用于tick()