我正在将React组件添加到一个有很多遗留代码的现有项目中。
我遇到的一个问题是,React会在document对象上附加其事件委托处理程序。不幸的是,我们许多遗留代码拦截点击事件并在到达document对象之前调用event.stopPropagation(例如,为了处理下拉菜单和模态框,当您在它们之外单击时关闭)。
当点击事件被拦截时,事件不会传播到React的文档级事件处理程序,并且该事件不会被委托给我的React组件(即使组件的实际DOM元素位于DOM中拦截元素的上方,并首先收到实际的非委托事件)。
因此......问题是:是否有一种方法可以在未触发React文档级事件处理程序的情况下手动触发给定事件的React合成事件?或者是否有一种将单个事件处理程序移动或复制到其他地方的方法?
作为备选方案,我考虑在React组件挂载后使用jQuery添加事件,但如果可能的话,我宁愿不这样做。
我遇到的一个问题是,React会在document对象上附加其事件委托处理程序。不幸的是,我们许多遗留代码拦截点击事件并在到达document对象之前调用event.stopPropagation(例如,为了处理下拉菜单和模态框,当您在它们之外单击时关闭)。
当点击事件被拦截时,事件不会传播到React的文档级事件处理程序,并且该事件不会被委托给我的React组件(即使组件的实际DOM元素位于DOM中拦截元素的上方,并首先收到实际的非委托事件)。
因此......问题是:是否有一种方法可以在未触发React文档级事件处理程序的情况下手动触发给定事件的React合成事件?或者是否有一种将单个事件处理程序移动或复制到其他地方的方法?
作为备选方案,我考虑在React组件挂载后使用jQuery添加事件,但如果可能的话,我宁愿不这样做。