我看到这个问题有很多答案。但在这里,我的问题和我现有的代码是不同的。我正在使用以下NPM模块在我的反应应用程序中进行路由。
从' react-router-dom'中导入{路由,交换机,浏览器路由器};
这是我的应用程序的路由文件。 https://gist.github.com/chanakaDe/241daafbc94df8543bced3695c7b7169
我想在此使用角色基础认证系统。所有角色都保存在本地存储中,我需要一种方法来检查使用何时进入路由。我有新的反应。请帮我解决这个问题。
我是否需要使用单独的文件从本地存储中获取所有角色,或者我们可以在路由文件中执行此操作吗?请建议
答案 0 :(得分:1)
您可以使Route自定义组件处理路径类型。例如,如果您有两个路由:
1)管理员路线 2)主机路由
然后你将制作一个将role
作为道具的组件,然后使用这个组件,你将返回你需要渲染的路线。
小例子如下所示:
class ResolveRoute extends React.Component {
render () {
const role = this.props.role
return (
{
() => {
if (roles === "admin") {
<Route ...this.props />
}
else if (roles === "host") {
<Route ...this.props/> // Render the routes that have host roles.
}
else {
<Redirect to="/" /> // or Not found error page.
}
}
}
)
}
}