将范围绑定到事件处理程序,但保留原始参数

时间:2016-05-04 13:53:12

标签: reactjs javascript-events

我以这种方式绑定一个事件:

render() {
  return <button onClick={this.click.bind(this)}>click me</button>
}

但我需要检索onClick事件的原始参数。

click(evt) {
  // evt is undefined here
  this.setState({ evt: evt })
}

如何使此代码有效?

1 个答案:

答案 0 :(得分:1)

要从click事件传播e,您可以将其包含在另一个函数中:

render() {
  return <button onClick={function(e) { this.click(e)}.bind(this)}>click me</button>
}

或者,如果你在ES6中,你可以使用箭头功能:

render() {
  return <button onClick={(e) => { this.click(e)}}>click me</button>
}