React挂钩-如何通过服务器端渲染将组件附加到侦听器?

时间:2019-02-07 12:51:12

标签: javascript reactjs listener serverside-rendering react-hooks

我想将组件附加到侦听器或为该侦听器创建自定义钩子。

在客户端,我会这样:

 useEffect(() => {
    const subscription = observable.subscribe({
      next(value) {
        setValue(value);
      }
    });

    return () => subscription.unsubscribe();
  }, [observable])

使用useEffect附加侦听器,然后在return函数中取消订阅。但是useEffect在服务器端不起作用。

1 个答案:

答案 0 :(得分:0)

我认为这个问题可以在更高层次上解决(或必须解决)。如果我等到一切都完成后再在服务器上运行renderToString函数,则所有内容都应该是最新的。这意味着:

  • 等待所有可能发生的异步功能(在服务器上)。因此,应准备好所有来自侦听器的数据并具有最终状态。
  • 运行renderToString函数。这将呈现组件和挂钩。
  • 所有useState挂钩都将使用侦听器中的正确值初始化。

随后在客户端可能发生异步代码并必须对其进行处理的地方,useEffect挂钩将完成其工作。