如何在React中添加事件监听器?

Han*_*Han 6 javascript dom express ecmascript-6 reactjs

我正在与用户和代理创建一个聊天应用程序。当代理在他单独的 Rainbow UI 上回复时,我试图检索消息。问题是这只能通过事件监听器来完成,如文档中所示。有人可以帮助我吗?在 React 中我可以在哪里以及如何进行document.addEventListener

注意: getMessageFromConversation() api 不起作用,因为默认情况下,一旦看到完整的消息历史记录,调用此 api 将返回错误。我试过了。

提前致谢!

小智 9

如果您使用基于类的组件,那么您可以使用componentDidMountcomponentWillUnmount分别添加和删除侦听器,如下所示:

class Hello extends React.Component {
  doSomething = () => {}

  componentDidMount() {
    window.addEventListener('scroll', this.doSomething)
  }

  componentWillUnmount() {
    window.removeEventListener('scroll', this.doSomething)
  }
}
Run Code Online (Sandbox Code Playgroud)

如果您使用挂钩,那么您可以使用useEffect以下方式添加和删除侦听器:

function Hello() {
  useEffect(() => {
    const doSomething = () => {};

    window.addEventListener("scroll", doSomething);
    return () => {
      window.removeEventListener("scroll", doSomething);
    };
  }, []);
}

Run Code Online (Sandbox Code Playgroud)


Car*_*teu 1

您可以在react中添加一个eventListener,在componentDidMount中这样做,以便在安装组件时完成。

componentDidMount() {
    document.addEventListener(...)
}
Run Code Online (Sandbox Code Playgroud)