我如何订阅React的全球虚拟活动?

时间:2016-01-24 14:53:26

标签: reactjs

对于给定的React应用程序树的事件,是否有标准或hacky方式可以监听所有事件?例如。所有onClicks。

编辑:不,我想要所有活动,而不仅仅是具体的活动。

2 个答案:

答案 0 :(得分:1)

AFAIK没有标准的方法来做到这一点。确切地说,您可能只想监听合成事件处理程序的调度,而不是监听所有事件。例如,只需在屏幕上移动鼠标即可生成mousemove个事件流。

要捕获事件发送,您可能需要在https://github.com/facebook/react/blob/v0.14.6/src/renderers/shared/event/EventPluginUtils.js

中手动将监听器入侵executeDispatch

我希望您的应用程序仅用于调试传统的意大利面条代码。将任何类型的全球听众纳入生产代码都会遇到麻烦。

答案 1 :(得分:0)

您可以只收听最外层容器的事件。那将包括所有的孩子。然后你会得到事件所在位置下的元素。

喜欢的东西;

let x = event.touches[lastTouch].pageX;
let y = event.touches[lastTouch].pageY;
let element = document.elementFromPoint(x, y);