React event.target 不是我设置事件监听器的元素

Pil*_*ful 5 javascript reactjs

const onClick = (e) => {
  console.log(e.target);
}
const App = () => (
  <button
    name={'YES'}
    className="btn waves-effect waves-light left blue darken-4"
    onClick={onClick}
  >
    Yes
    <i className='material-icons left'>done</i>
  </button>
);

ReactDOM.render(<App />, document.querySelector("#app"));
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react-dom.min.js"></script>
<div id="app">
Run Code Online (Sandbox Code Playgroud)

我需要 e.target<button>在所有可能的情况下,但是当我点击<i>(或任何其他元素)时,目标<i>分别是。它可能不是错误,但我不知道该怎么办。

Ros*_*len 11

使用event.currentTarget,它将始终是添加处理程序的元素。event.target将始终是发生事件的元素。

<button
  name={answerTypes.YES}
  className="btn waves-effect waves-light left blue darken-4"
  onClick={this.onClick}
>
  Yes
  <i className='material-icons left'>done</i>
</button>

onClick(e) {
  console.log(e.currentTarget);
}
Run Code Online (Sandbox Code Playgroud)