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

react的一个页面中,多个fetch请求失败跳转的问题

react的一个页面中,多个fetch请求失败跳转的问题

炎炎设计 2019-05-13 10:24:34
场景:在一个页面中,有多个fetch请求,每次请求都会带上tocken,如果token验证过期或失败,返回登录页。问题:如果又多个fetch请求,那么都结束后就会多次返回登录页,怎么避免这种情况?(同步请求是可以解决,但是asyncawait多少会有点影响整体速度)
查看完整描述

2 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

我的方案是用高阶组件+redux解决问题。首先所有的接口都走redux,数据正常该dispatch哪去dispatch哪去。如果登录失败dispatch一个登录失败的action,然后在高阶组件中处理登录问题,如果找不到登录态,那么就跳转登录页,如果有登录态就什么都不做。注意:不要在reducer中dispatch,登录页本身不要被高阶组件包裹
然后就是审美问题了withRouter(connect(state=>state)(LoginHOC(YourBusiness)));就是长了一点而已嘛。。。
其实我也就是随便一答,redux管理接口,确实能做到页面视图完全解藕,但是你们知道接口异常打一个toast有多麻烦。先dispatch到redux,过几秒钟还要在dispatch一个cancelToast
我也在等待更好的接口管理方式。有时挺矛盾的复用行就以为这解藕,引入了三方状态和subscription,然后再map到自己的状态,解了藕肯定会造成不方便。
ps:一些脑回路轻奇的同事,让ajax模块接受一个this,然后就能操作页面了,我勒个去。。。那还不如Vue的mixin思想。
                            
查看完整回答
反对 回复 2019-05-13
?
慕工程0101907

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

1.不会多次返回登录,你发出的第一个请求判断到token失效之后,调整到了登录页,那么后面的都没都不会再执行2.在返回之前可能有多个请求已经发出了,但是返回是只会执行一次
                            
查看完整回答
反对 回复 2019-05-13
  • 2 回答
  • 0 关注
  • 981 浏览
慕课专栏
更多

添加回答

举报

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