更新:
我发现了这个问题:
问题不在于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; - 这个文件显示它发生在一个深层次,但没有解释当你走两层时应该发生什么。