无法在反应中更改路线上安装组件

时间:2019-04-22 14:27:24

标签: javascript reactjs react-router

我有两个导航栏项目,当我想通过单击导航栏中的项目从一个页面切换到另一页面时,它们具有不同的路由,组件未安装但路由已更改。

我正在调查此问题,并找到了使用componentWillReceiveProps()方法的解决方案。

我尝试过这种方法:

  • 当我声明路由时,我将prop currentRoute传递给组件。

  • 稍后在componentWillReceiveProps中检查下一步,该道具currentRoute如果不相同,则调用重置状态的函数。

代码

// THIS ARE 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()
    }
  }

注意:这两个路由都使用相同的“ Analytics”组件,即使用同一个组件的两个不同的分析。

0 个答案:

没有答案