检测组件是否“附加”到服务器呈现的标记?

时间:2016-03-09 23:11:01

标签: reactjs redux

我是服务器端渲染redux驱动的反应应用程序。在这方面一切运作良好。我附加了'loader'方法,它们将promises返回给路由组件,并在渲染之前在服务器上运行它们。在客户端上,加载器在MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.music); mp.start(); while(mp.isPlaying()) { } 中被调用。

我想做的是,如果我们只是挂载到服务器端标记,则不会在componentDidMount中调用加载器。在所有其他情况下,装载机应该运行。

我不确定如何检测是否是这种情况。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您可以跟踪应用程序是否已呈现至少一次的单个布尔值。 ReactDOM.render接受第三个回调函数,您可以使用该函数在初始渲染完成时触发。我的代码中有这样的东西:

ReactDOM.render(
  (<Provider store={store}>
    <App>
  </Provider>),
  document.getElementById('root'),
  () => store.dispatch(initialRender)
)

您可以在componentDidMount方法中检查该状态,以了解它们是否应该运行。