使用 jquery 附加事件处理程序以响应组件
attaching event handlers to react components using jquery
我知道这是正确的做法 -
使用 onClick、onBlur 等属性在 React 组件上附加处理程序。
如果附加自定义事件,则将它们附加到 componentDidMount 中,以便它始终附加到每次渲染中。
但是,当使用 jquery 将事件附加到 DOM 元素时会发生什么情况?为什么我无法收听这些事件?我将它们附加到 componentDidMount 之外。然而,事件处理程序应该至少在第一次被触发?
我正在调试一些直接将处理程序附加到它的反应代码,但它根本没有触发处理程序。为什么会这样?
没有代码示例,很难确定,但很可能您正在尝试使用 jQuery 将事件绑定到某个反应生成的 DOM 元素。因此,根据您进行绑定的位置,您可能正在使用 jQuery select 或 returns 没有结果,因为 React 尚未将该元素渲染到 DOM select 或 运行 的时间。
这就是为什么,如果您打算使用 jQuery 绑定,您应该确保这样做是组件生命周期的一部分,以确保元素在 DOM 之前实际呈现您正在尝试 select 它与 jQuery。所以这就是为什么建议将这种代码放在 componentDidMount
中并在 componentWillUnmount
.
中清理它
我知道这是正确的做法 -
使用 onClick、onBlur 等属性在 React 组件上附加处理程序。
如果附加自定义事件,则将它们附加到 componentDidMount 中,以便它始终附加到每次渲染中。
但是,当使用 jquery 将事件附加到 DOM 元素时会发生什么情况?为什么我无法收听这些事件?我将它们附加到 componentDidMount 之外。然而,事件处理程序应该至少在第一次被触发?
我正在调试一些直接将处理程序附加到它的反应代码,但它根本没有触发处理程序。为什么会这样?
没有代码示例,很难确定,但很可能您正在尝试使用 jQuery 将事件绑定到某个反应生成的 DOM 元素。因此,根据您进行绑定的位置,您可能正在使用 jQuery select 或 returns 没有结果,因为 React 尚未将该元素渲染到 DOM select 或 运行 的时间。
这就是为什么,如果您打算使用 jQuery 绑定,您应该确保这样做是组件生命周期的一部分,以确保元素在 DOM 之前实际呈现您正在尝试 select 它与 jQuery。所以这就是为什么建议将这种代码放在 componentDidMount
中并在 componentWillUnmount
.