微信小程序修改数据对数组的修改

小程序修改数据及对数组的修改

小程序中,其实没有双向数据绑定的

修改数据:

setData 函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步)。
直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致。
单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据。

使用setData(),参数是一个key,value形式的对象
Page.prototype.setData();
如果是在此页的.js文件中,可直接使用this

this.setData({
   dataname :value
})

使用setData修改数组时需要注意
不需要在this.data中预先定义,使用setData()方法会自动创建该数据
1、修改数组

data:{
    arrayTest:[
    {title:"1",val:"one"},
    {title:"2",val:"two"},
    {title:"3",val:"three"}]
}
opationArray(){
    var self = this;
    var obj = {title:"4",val:"four"}
    var arrayT = self.data.arrayTest;
    arrayT.push(obj);
    self.setData({arrayTest:arrayT});
}

2、修改数组中的某条数据

this.setData({
    'list[0].title' = 'change data',   //数据路径key必须带'''list[0].num' = 'change data'      //数据路径key必须带''号
})

3、key值可以为变量,为变量的时候要用[ ]引起来

page({
  data:{
    todos:[{id:0,text:'abc',isDelete:false}]
  },
  change(e){
    var index = e.currentTarget.dataset.id;
    var deletedtodo='todos['+index+'].idDelete';
    this.setData({
       [deletedtodo]:true
    })
  }
})
  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值