【发布时间】:2017-03-07 08:55:34
【问题描述】:
我是 React.js 的新手。我创建了一个列表组件,其中经常添加/删除项目。每个项目都应该有一个点击和/或悬停事件。
我想以我们在 jQuery 中使用on(event, selector, data, handler) 方法的类似方式进行事件委托,这样我就可以在列表父元素上绑定/取消绑定事件,而不必担心添加/删除每个子项的事件绑定/取消绑定.
【问题讨论】:
-
我相信 React 会自动委托事件(例如,如果您在每个项目上放置
onClick,React 实际上不会这样做),但我不能(不再)在反应文档... -
@T.J.Crowder 我相信您所指的是合成事件处理程序。 facebook.github.io/react/docs/events.html
-
@spirift:这是其中的一部分(但它们也用于跨浏览器规范化,如 jQuery 的
$.Event),但文档过去专门指出处理程序已被委派。但在文档中搜索 delegation 或 delegate 不再出现结果。 -
@T.J.Crowder 我认为你是对的,
<button onClick={(e) => {console.log(e.nativeEvent.currentTarget)}}/>` 将记录document元素
标签: javascript reactjs event-handling event-delegation