首先,我希望您告知我正在使用react-boilerplate
这个应用。所以你应该知道路由声明的方式有点dynamic。它在react-router
的文档中的类似方式here。
所以这就是问题,我有三个用户角色,代号为 DP , PT 和 OP 。每个都有不同的导航侧边栏,要显示的屏幕和权限等。 但是根据客户的要求,将后端和/或API放在一边,我必须首先显示我开发的每个用户角色的创建屏幕。
所以我创建了一个类似于此的路由模式:
/dp/dashboard
/dp/manage
/dp/info
/pt/dashboard
/pt/info/share
/op/dashboard
/op/financial
^假设这些部分导航项,正如您所看到的,某些项目可用于所有或某些用户角色,有些是 ONE 用户独有的,等等。
所以在我的实现中,我创建了一个登录,我在当前用户角色的redux存储中设置了一个状态,即userRole: DP
,然后在我的Home
中,我生成导航项取决于userRole
的状态。
这些导航项目上的项目也会传递href
或Link
的{{1}}属性,有点像to
,导致上面的类似路线。< / p>
现在的问题是,随着所有这一切,每当我尝试导航到内部子导航项时,它都可以正常工作。
href={'/'+this.state.userRole.toLowerCase()+'/some/route'}
但是,如果我点击/pt/info/share
导航项,就会这样:
Financial
为什么? /pt/info/pt/financial
的真正本质是什么,以及我可以实现上述路线的解决方法是什么?
PS。我还尝试删除“附加react-router
”或'/'+this.state.userRole.toLowerCase()
等部分,但它运行正常,
在导航项之间导航时,它不会附加到当前路线,仅/pt
,/financial
,而不是/dashboard
。