setData数据更新逻辑错误
发布于 6 年前 作者 xiulan06 3950 次浏览 来自 问答
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之前的数据呢?

回到顶部