对数组数据内容循环分别进行请求接口数据,会因为数据接口的返回快慢造成数据push拼接的数据与原数组数据顺序不同。后发现百度无明确方法,因此,做了一个数据改动进行处理数据错乱问题。(循环请求时将数据下标同时传递,使其返回数据占据原始下标)
示例:
listAll=[]//目的数据 data中定义
forData(){
this.listAll=[]//对每次调用forData方法时对数据进行清空
let arr=[data1,data2,data3...]//循环数据
arr.forEach((item,index)=>{
this.getDataApi(item,index)
})
}
getDataApi(item,index){
api.getData(item).then((data)=>{
this.listAll[index] = data //先将其对应下标放到数组上,此时页面数据会出现数据不刷新问题
this.$nextTick(()=>{
this.$set(this.listAll,index,data)//对数据进行刷新,然后就可以按数据顺序展示了
})
})
}