使用 jquery 附加事件处理程序以响应组件

attaching event handlers to react components using jquery

我知道这是正确的做法 -

  1. 使用 onClick、onBlur 等属性在 React 组件上附加处理程序。

  2. 如果附加自定义事件,则将它们附加到 componentDidMount 中,以便它始终附加到每次渲染中。

https://facebook.github.io/react/docs/interactivity-and-dynamic-uis.html#under-the-hood-autobinding-and-event-delegation

但是,当使用 jquery 将事件附加到 DOM 元素时会发生什么情况?为什么我无法收听这些事件?我将它们附加到 componentDidMount 之外。然而,事件处理程序应该至少在第一次被触发?

我正在调试一些直接将处理程序附加到它的反应代码,但它根本没有触发处理程序。为什么会这样?

没有代码示例,很难确定,但很可能您正在尝试使用 jQuery 将事件绑定到某个反应生成的 DOM 元素。因此,根据您进行绑定的位置,您可能正在使用 jQuery select 或 returns 没有结果,因为 React 尚未将该元素渲染到 DOM select 或 运行 的时间。

这就是为什么,如果您打算使用 jQuery 绑定,您应该确保这样做是组件生命周期的一部分,以确保元素在 DOM 之前实际呈现您正在尝试 select 它与 jQuery。所以这就是为什么建议将这种代码放在 componentDidMount 中并在 componentWillUnmount.

中清理它