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

时间:2015-08-20 17:06:28

标签: reactjs

绑定在以下代码中的 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>
    );
  }
}

代码取自React网站。

2 个答案:

答案 0 :(得分:10)

.bind()设置用于创建的函数的this,作为传入的参数。Docs here

在这种情况下,它会将this函数的tick()设置为render()函数的上下文。

您可以这样做,因为当一个函数用作DOM事件处理程序时,this被设置为调度DOM事件的元素。您希望保证this是您期望的那个,因为它在tick()

中使用了

答案 1 :(得分:0)

它曾用于将参数传递给tick()方法,它只是Javascript而且没有特定的反应。