React hooks - 如何通过服务器端呈现将组件附加到侦听器?

问题描述 投票:1回答:1

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

在客户端我会这样做:

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

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

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

javascript reactjs listener serverside-rendering react-hooks
1个回答
0
投票

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

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

之后在客户端,异步代码可能发生并且必须处理,useEffect挂钩将完成它们的工作。

© www.soinside.com 2019 - 2024. All rights reserved.