检测组件是否 'attached' 到服务器呈现的标记?
Detect if component is being 'attached' to server-rendered markup?
我正在服务器端渲染一个由 redux 驱动的 React 应用程序。在这方面一切都运作良好。我将 return 承诺的 'loader' 方法附加到路由组件,并在呈现之前将它们 运行 在服务器上附加。在客户端,加载程序在 componentDidMount
.
中被调用
如果我们只是安装到服务器端标记,我想做的是不调用 componentDidMount
中的加载器。在所有其他情况下,加载器应该 运行.
我不确定如何检测是否是这种情况。有什么想法吗?
您可以跟踪单个开启状态的布尔值,以确定应用是否已至少呈现一次。 ReactDOM.render
接受第三个回调函数,您可以使用它在初始渲染完成时触发。我的代码中有这样的东西:
ReactDOM.render(
(<Provider store={store}>
<App>
</Provider>),
document.getElementById('root'),
() => store.dispatch(initialRender)
)
您可以在 componentDidMount
方法中检查该状态,以了解它们是否应该 运行。
我正在服务器端渲染一个由 redux 驱动的 React 应用程序。在这方面一切都运作良好。我将 return 承诺的 'loader' 方法附加到路由组件,并在呈现之前将它们 运行 在服务器上附加。在客户端,加载程序在 componentDidMount
.
如果我们只是安装到服务器端标记,我想做的是不调用 componentDidMount
中的加载器。在所有其他情况下,加载器应该 运行.
我不确定如何检测是否是这种情况。有什么想法吗?
您可以跟踪单个开启状态的布尔值,以确定应用是否已至少呈现一次。 ReactDOM.render
接受第三个回调函数,您可以使用它在初始渲染完成时触发。我的代码中有这样的东西:
ReactDOM.render(
(<Provider store={store}>
<App>
</Provider>),
document.getElementById('root'),
() => store.dispatch(initialRender)
)
您可以在 componentDidMount
方法中检查该状态,以了解它们是否应该 运行。