在开发过程中我们常常发现从后台获取到了数据后(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.

 

Logo

前往低代码交流专区

更多推荐