在开发过程中我们常常发现从后台获取到了数据后(data做出了改变而页面并未加载这些数据)。我们先用console.log()把数据输出,确保已经获取到数据,如果已经获取到了那就是下面情况出错了。
未使用this.setData()进行赋值。
这就类似于vue中的双向绑定,即只有用this.setData赋值的数据才具有响应式特征。
但大多数开发情况下我们的数据都是数组类型的,如果是向数组中添加元素,this.setData似乎不太符合应用情景,因为他是改变原数组,而不是向数组添加数据。所以可以采用以下技巧:
this.setData({
//这是列表拼接表达式将原列表和新列表拼接起来
list:[...this.data.list,...res.data.data.list],
total:res.data.data.total
})
或者一条一条的添加,然后再用setData方法进行赋值。如:
for(var x=0;x<that.data.newdatas.length;x++){
that.data.olddatas.push({
id:x+1,
}
})
}
//前面不管多少次改变data数据,最后都要用setData进行赋值
that.setData({
olddatas:that.data.olddatas
})
谁还没有点初学者的艰难岁月呢?
We just need to be on ourselves own admantly.