为了账号安全,请及时绑定邮箱和手机立即绑定

想问下 react-router v4 的用法

想问下 react-router v4 的用法

倚天杖 2019-05-22 17:09:24
我现在正在学习react,有些地方不知道怎么做才好。项目进来时,会先请求后台判断是否有权限,用redux去存储状态值。exportconstAuthRoute=({component:Component,redirect,loginStatus,...data})=>((loginStatus?():())}/>)用loginStatus去判断是否有权限。当去一个news的页面,需要有权限才能显示。所以在请求接口时(loginStatus还没改改变时),就会重定向到/home页面。当请求完毕,更新了redux,变成有权限。/home页面有权限的就话就会重定向到/页面。期望权限变更后(有权限)应该跳回去刚进来时的页面(/news)。现在权限变更后,只会跳去定义好的重定向页面(/)。那我是不是要拿到因没权限而重定向前的路径,当有权限后,就应该重定向回那个路径呢?有没有什么好的解决方法。。。我在github找demo也找不到好的处理方法。
查看完整描述

2 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

当去一个news的页面,需要有权限才能显示。所以在请求接口时(loginStatus还没改改变时),就会重定向到/home页面。当请求完毕,更新了redux,变成有权限。
这种操作是有问题的,你不应该在没判定到有无权限之前跳转页面,而是应该在判断到没权限时跳转到登录页面。
简单来说,所有页面用户都可以先进去,但是如果没有权限,就赶回登录页。
                            
查看完整回答
反对 回复 2019-05-22
?
心有法竹

TA贡献1866条经验 获得超5个赞

换个思路试试,你这思维方式是一个使用者的思考方式。首先:前端拿到的数据都应该是有权限的。只要接口返回的数据,前端全部认为是有权限的,否则权限控制毫无意义。第二:当用户登录时,就应该把该用户所能访问的菜单,也就是router的内容给你。第三:在router的最后一个Router中,加入一个404或者403的page,当请求找不到router时,直接进入这个页面。也就认为是无权限。
                            
查看完整回答
反对 回复 2019-05-22
  • 2 回答
  • 0 关注
  • 429 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信