第一

<div tabIndex="0"
  onKeyPress={this.onHandleClick.bind(null, 'first')}
  onClick={this.onHandleClick.bind(null, 'first')}>

第二
onHandleClick = (event) => {
  $(event.currentTarget).data('circle')
}
<div tabIndex="0"
  data-circle="first"
  onClick={this.onHandleClick}>

还有另一种方法可以做到更清洁和正确的方法吗?这两种感觉都像黑客一样:特别是在JSX中使用bind。

最佳答案

您可能遇到的另一种情况是在回调中需要正确的“this”指针,一些任意参数和事件对象本身。在这种情况下,您可以执行以下操作:

<button onClick={(event) => this.handleAction('arbitrary-data', event)}> ... </button>

handleAction(data, event) {
  event.preventDefault()
  // this.state.something
  console.log(`data ${data}`)
}

关于javascript - 在JSX点击中传递数据的正确方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36550160/

10-09 08:16
查看更多