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

时间:2015-05-30 14:14:07

标签: reactjs

我知道这是正确的做法 -

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

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

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

    但是,使用jquery将事件附加到DOM元素时会发生什么?为什么我不能听这些事件?我将它们附加到componentDidMount旁边。但是事件处理程序应该在第一次出现时才会被触发?

    我正在调试一些反应代码,它直接将处理程序附加到它上面,但它根本没有对处理程序进行处理。那是为什么?

1 个答案:

答案 0 :(得分:2)

如果没有代码示例,很难确切知道,但很可能您尝试使用jQuery将事件绑定到某些react-generate DOM元素。因此,根据您执行绑定的位置,您可能正在使用不返回结果的jQuery选择器,因为React在运行选择器时没有将该元素呈现给DOM。

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