由于 token 过期,在获取新 token 后使用 axios 重新发送之前的请求,数据也传回来了,但是现在有一个问题,列表数据无法显示了,页面的结构是这样的
index.vue
<template>
<ChildComponent />
</template>
我是在<ChildComponent />
中请求的数据:
<template>
<ul>
<li v-for="item in list">{{item}}</li>
</ul>
</template>
<script>
const list = getDataFromApi().data
</script>
重发请求写在拦截器里:
axios.interceptors.response.use(
response => {
//请求重发
if(statusCode === 401) {
getNewToken()
return axios.request(response.config);
}
}
})
请求是重发了,但是组件里的list
并没有接收到新数据,因此列表也没有重新渲染,请问这种情况怎么处理,或者有什么别的解决方案吗
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.