reactjs 了解是否已装入使用此上下文的任何组件的React上下文提供程序

7nbnzgx9  于 2022-11-22  发布在  React
关注(0)|答案(1)|浏览(222)

我有一个上下文提供者,它维护一个到服务器的WebSocket连接,并公开一些服务器可以更新的状态,对于组件来说是微不足道的。
然而,只要挂载了 provider,WebSocket代码就会连接--在我的例子中,基本上总是这样。
我的提供程序是否可以知道何时没有使用其上下文的组件被挂载,以便它可以仅在需要时连接/断开连接?

gopyfrb3

gopyfrb31#

让组件在挂载和卸载时调用上下文如何?

useEffect(() => {
  // This will run when the component is mounted
  registerIncontext("componentId");
  return () => {
    // This will run when the component is unmounted
    unregisterIncontext("componentId");
  };
}, []);

您必须公开在内容中注册和取消注册的方法。

相关问题