微信小程序--修改data数组或对象里面的值或者给对象添加键值对

1.初始data数据

data: {
   chListShow:false,
    ListData:''
  }, 
onLoad: function () {
    this.setData({
      ListData:[{
            imgUrl:'',
            headCon:"20小时前",
            headIcon:"icon-biao",
            name:"博韵通演示厅",
            chListShow:true,
            chList:[{
                icon:'icon-yun',
                name:'空气温度',
                value:"27.3"
              },
                { icon:'icon-73',
                  name:'空气湿度',
                  value:"63.3%"
                },
                {icon:'icon-deng-',
                  name:'照度',
                  value:"63.3%"
                },
                {icon:'',
                  name:'二氧化碳浓度',
                  value:"405ppm"
                }]},{
          imgUrl:'',
          headCon:"20小时前",
          headIcon:"icon-biao",
          name:"博韵通演示厅",
          chListShow:true,
          chList:[{
            icon:'icon-yun',
            name:'空气温度',
            value:"27.3"
            },{
                icon:'icon-73',
                name:'空气湿度',
                value:"63.3%"
              },{
                icon:'icon-deng-',
                name:'照度',
                value:"63.3%"
              },{
                icon:'',
                name:'二氧化碳浓度',
                value:"405ppm"
              }]}]
    })
    console.log(this.data.ListData)
  },

2.直接修改data的某个属性

this.setData({
chListShow:true
})

3.修改data里的数组或对象的属性(注意ListProp必须是双引号)

 var chListShow=!this.data.ListData[e.target.dataset.index].chListShow
    // e.target.dataset.index
    var ListProp="ListData["+e.target.dataset.index+"].chListShow"
    debugger
    this.setData({
      [ListProp]:chListShow
    })

需要注意的是:

var arr = this.data.arr;

arr.push({ name:"王宁", img:"../img/success.png", status:3})//这样添加数据,在控制台打印出来数据确实“变了”,但是页面数据并不会更改(假变更)

然后接着我们来数据变更

this.setData({

     arr:arr//(这样才能实现数据变更)

})

你可能感兴趣的:(前端)