setData数据更新逻辑错误
complete: function(res1) { //complete是网络请求的回调函数 if (index == res.data.data.length - 1 && finaly) { //主要逻辑 news1 = [] for (var index1 in res.data.data) { //这里对news1重新赋值 news1.push(res.data.data[index1]) } finaly = false that.setData({ news: news1 // 这里根据news1重绘界面,赋值失败,赋的是news之前的数据,全局只有这里有赋值更新操作 }); console.log(that.data.news) //打印的是之前的news1的数据 } } |
问题在于,主要逻辑只执行了一次,并且news1的值没有问题。问题在于setdata赋值失败,news始终是news1没有改变的数据。诡异的地方在于全局只有这个地方对news进行赋值更新操作,为什么new1是正常的,一旦调用setdata,就赋值news1之前的数据呢?