为什么我的嵌套根路由在其子路由发生变化时会重新挂载?

时间:2016-11-04 03:06:11

标签: reactjs react-router

更新

我发现了这个问题:

问题不在于react-router与在使用带有react-router的ReactCSSTransitionGroup方面给出的所有示例一样多。示例:https://github.com/ReactTraining/react-router/blob/master/examples/animations/app.js

然后在更新第二级子项时,再次在父项上调用cloneChildren,但在URL更改后。这会导致密钥更改,因此可以重新安装父元素。

有人对如何处理此事有任何建议吗?

原始帖子

我有以下路线:

path: '/',
  component: CoreLayout,
  childRoutes: [
    {
      path: 'auth',
      component: LoginLayout,
      indexRoute: {component: SplashView},
      childRoutes: [
        {path: 'login', component: LoginView}
      ]
    }

加载我的应用程序后,我希望应用程序像这样加载(它可以):

<CoreLayout>
  <LoginLayout>
    <Splash />
  </LoginLayout>
</CoreLayout>

我用来导航到/ auth / login的行是:

browserHistory.push('/auth/login');

现在,当我尝试从/ auth导航到/ auth / login时,我注意到虽然CoreLayout没有卸载,但是AuthLayout已经卸载并重新安装。由于LoginView只是AuthLayout的子视图,我原本期望CoreLayout和AuthLayout都只接收componentWillUpdate。为什么要重新安装AuthLayout?

https://github.com/ReactTraining/react-router/blob/master/docs/guides/ComponentLifecycle.md&lt; - 这个文件显示它发生在一个深层次,但没有解释当你走两层时应该发生什么。

0 个答案:

没有答案