×

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

Kalet Kalet 发表于2019-10-12 08:51:03 浏览324 评论0

抢沙发发表评论

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


修改数据:


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

    })

  }

})


————————————————

版权声明:本文为CSDN博主「chenzlyan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/chenzlyan/article/details/81565169


群贤毕至

访客