我有两个导航栏项目,它们具有不同的路线,当我想通过单击导航栏上的项目从一个页面切换到另一页面时,未安装组件,但更改了路线。
我正在调查此问题,并使用componentWillReceiveProps()
方法找到了解决方案。
但不确定这是解决方案。
这是我尝试过的:
当我声明路由时,我将prop currentRoute
传递给组件。
稍后在componentWillReceiveProps
中检查下一个和该道具currentRoute
,如果它们不同,则调用函数wihch reset State。
代码:
// ROUTES
if (route === '/intakeAnalytics') {
return <Analytics userRole={userRole} currentRoute="/intakeAnalytics" />
}
if (route === '/adjusterAnalytics') {
return <Analytics userRole={userRole} currentRoute="/adjusterAnalytics" />
}
// componentWillReceiveProps
async componentWillReceiveProps(nextProps) {
if (nextProps.currentRoute !== this.props.currentRoute) {
this.setDefaultData()
}
}
注意:这两个路由都使用相同的“分析”组件,这是使用同一组件的两个不同的分析。