猿问

关于阻塞react render的问题

情况是这样的,登录后,我将用户的token存在了localStorage中,然后用户刷新或者重启浏览器后,我会在在初始化的时候从localStorage中取出token,然后发送一个携带token的请求到后台,然后根据返回token是否过期的结果,来决定是否重定向到登录页面,现在的问题是,render()不会等待我的请求,

那请问怎么实现,让render等待我的请求呢?

<Auth path="/exchangeRecord" component={ExchangeRecord} />

ExchangeRecord是一个组件,Auth是用来拦截的容器组件


手掌心
浏览 748回答 2
2回答

慕雪6442864

在前后端分离的情况下,不建议cookie和session。fetch默认都不会带cookie的。楼主说的思路没有问题,也是通用解决方案。就是为什么要让render等待fetch呢?完全没有必要。你可以尝试如下操作:页面跳转或者加载组件依赖接口返回的数据时,你就等到fetch返回再操作,就是放到then中,这之前再加一级then,在此判断返回状态。所以,当服务端判断token失效,返回一个特定的状态码。在then中直接处理掉,一般history.push(login page),然后清除localstorage.
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答