我是服务器端渲染redux驱动的反应应用程序。在这方面一切运作良好。我附加了'loader'方法,它们将promises返回给路由组件,并在渲染之前在服务器上运行它们。在客户端上,加载器在MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.music);
mp.start();
while(mp.isPlaying())
{
}
中被调用。
我想做的是,如果我们只是挂载到服务器端标记,则不会在componentDidMount
中调用加载器。在所有其他情况下,装载机应该运行。
我不确定如何检测是否是这种情况。有什么想法吗?
答案 0 :(得分:3)
您可以跟踪应用程序是否已呈现至少一次的单个布尔值。 ReactDOM.render
接受第三个回调函数,您可以使用该函数在初始渲染完成时触发。我的代码中有这样的东西:
ReactDOM.render(
(<Provider store={store}>
<App>
</Provider>),
document.getElementById('root'),
() => store.dispatch(initialRender)
)
您可以在componentDidMount
方法中检查该状态,以了解它们是否应该运行。