我有一个支持每个用户权限的应用程序。所以如果用户需要适当的权限,他可以管理用户,组等。如果用户没有这样的许可,他可能不会那样做。React-Router-在运行时添加/删除路由
我有一个休息API,与一个端点,返回当前用户的所有允许的链接,并与此,我想设置路由为react-router
。在编辑权限的情况下,例如,用户放弃编辑用户的权限时,相应的菜单项应该从菜单中消失并从路由器中删除路由。否则,应添加菜单项和路线。
现在我有这样的设置:
ReactDOM.render(
<Provider store={store}>
<Router history={history}>
<Route path="/" component={Window}>
<IndexRoute component={Users} />
<Route path="users" component={Users} />
<Route path="groups" component={Groups} />
<Route path="permissions" component={Permissions} />
<Route path="*" component={Error} />
</Route>
</Router>
</Provider>, mount);
但我真的想拥有的是:动态地做这个设置,可以在每次更改的权限运行的功能。
我找不到任何相关文档,如果有办法做到这一点,我会很高兴。
UPDATE
根据给定的答案和评论,我意识到,这样我想解决这个问题不会反应路由器的声明自然走。
为什么你想在运行时做到这一点?通常应该在登录时为每个用户加载权限。这让你的生活变得更轻松。 – Geethanga
因为用户可以更改权限,所以他可以放弃所需的不同路由权限。阻止可能是一个解决方案,但删除路线似乎对我来说更清洁。如果这不是正确的想法,请告诉我。 – philipp
你希望让别人编辑自己的权限,你期待什么?什么是业务场景?你可以强制他们在编辑权限后登录吗?这样你就可以从服务器发送新的路由,而不用担心在客户端处理它们。 – Geethanga