Javascript React hooks-如何使用服务器端呈现将组件附加到侦听器?
我想将组件附加到侦听器,或者为该侦听器创建自定义挂钩 在客户端,我会这样做:Javascript React hooks-如何使用服务器端呈现将组件附加到侦听器?,javascript,reactjs,listener,server-side-rendering,react-hooks,Javascript,Reactjs,Listener,Server Side Rendering,React Hooks,我想将组件附加到侦听器,或者为该侦听器创建自定义挂钩 在客户端,我会这样做: useEffect(() => { const subscription = observable.subscribe({ next(value) { setValue(value); } }); return () => subscription.unsubscribe(); }, [observable]) 使用useffect附
useEffect(() => {
const subscription = observable.subscribe({
next(value) {
setValue(value);
}
});
return () => subscription.unsubscribe();
}, [observable])
使用useffect附加侦听器,并在return函数中取消订阅。但useEffect在服务器端不起作用 我认为这个问题可以在更高的层次上解决(或必须解决)。如果我等到一切完成,然后在服务器上运行renderToString函数,那么一切都应该是最新的。这意味着:
- 等待所有可能发生的异步函数(在服务器上)。因此,来自侦听器的所有数据都应该准备好并具有最终状态
- 运行renderToString函数。这将渲染组件和挂钩
- 所有useState钩子都将使用侦听器中的正确值进行初始化
然后在客户端,异步代码可能发生并且必须处理,useEffect钩子将完成它们的工作。我认为这个问题可以在更高的级别上解决(或者必须解决)。如果我等到一切完成,然后在服务器上运行renderToString函数,那么一切都应该是最新的。这意味着:
- 等待所有可能发生的异步函数(在服务器上)。因此,来自侦听器的所有数据都应该准备好并具有最终状态
- 运行renderToString函数。这将渲染组件和挂钩
- 所有useState钩子都将使用侦听器中的正确值进行初始化