在做tab切换时,有时候请求还没回来但是tab页已经切了,这个时候返回的数据就会被加到不该在的tab,解决方案是点击tab的时候取消上一个请求,axios中可以做到这一点。
// 首先在data处定义一个取消的变量方法
data(){
return {
source:null
}
}
// 切换tab的时候调用source取消方法
handleClickTop(topTab) {
if (typeof this.source === 'function') {
this.source('终止请求') // 取消请求
}
}
// 在请求的时候给它一个取消的cancelToken
res = await this.$get('/api/yezhu/haozan/getHistory', {
params,
cancelToken: new Axios.CancelToken(((c) => {
that.source = c
})),
})