这两天使用uni-app运到一个问题请求时赋值,再次赋值后发现赋值不成功。
第一步,发送请求,接收请求后则判断获取请求成功(注:如果接口错误或者请求失败请将isFor改成true)
data() {
return {
dataList:[],
isFor:false, // 用来判断是否请求成功
}
},
_ajaxs("某某接口",{参数},"POST",(res)=>{ // _ajaxs自己封装的接口
slef.dataList = res.data
slef.isFor = true
})
第二步,使用计时器判断isFor 为true时发送请求,否则每秒执行一次
let setIn = setInterval(function() {
if(slef.isFor){ // 如果进到里面则数据获取成功
for(let i=0;i<slef.dataList.length;i++){
slef.dataList[i].dataN = []
slef.ajaxQ(slef.dataList[i].id,i) // 请求时要获取dataList里面的id
}
slef.isFor = false
clearInterval(setIn) // 清除计时器
}
},1000) // 时间目前定义1秒,时间自己可以调(感觉最好事300毫秒吧)
第三步,定义请求
ajaxQ:function(id,num){
_ajaxs("某某接口",{参数},"POST",(resN)=>{
let arr = resN.data.list
this.dataList[num].dataN = arr
this.$forceUpdate(); // 在数据更新后添加强制重新渲染(重点),不然页面上能获取到dataN值但是页面就是不渲染。百度到吐血,最后还是群里大神解决的
})
},