微信小程序数据渲染不出来,setData用法技巧全

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

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值