【发布时间】:2017-09-11 23:51:16
【问题描述】:
在 react router (v2) 中,当路由路径不同但组件相同时。
我们如何防止重新挂载组件,例如卸载组件然后再次挂载组件。
它会导致调用 componentDidMount 两次。
当有订阅请求时,我的应用会订阅两次。
所以订阅的事件会被调用两次。
我该如何解决?
【问题讨论】:
标签: reactjs redux react-router react-redux react-router-redux
在 react router (v2) 中,当路由路径不同但组件相同时。
我们如何防止重新挂载组件,例如卸载组件然后再次挂载组件。
它会导致调用 componentDidMount 两次。
当有订阅请求时,我的应用会订阅两次。
所以订阅的事件会被调用两次。
我该如何解决?
【问题讨论】:
标签: reactjs redux react-router react-redux react-router-redux
只需嵌套您的 react-router 代码。如下所示,
<Route component={Home}>
<IndexRoute />
<Route path="/" />
<Route path="/market" />
</Route>
父标签只定义你要调用一次的组件,子标签只定义路径。
那么如果路由路径将'/'更改为'/market',则不会重新挂载组件。
以下代码是您可能不想要的重新安装场景。
...
<Route component={Home} path="/" />
<Route component={Home} path="/trade" />
...
【讨论】: