微信小程序 setData 的坑

最近在使用微信小程序的setData时,遇到了以下问题。如下:

官网文档在使用setData()设置数组对象的某个元素的属性时,是这么使用的:

Page({
  data: {
    array: [{text: 'init data'}],
  },
  changeItemInArray: function() {
    this.setData({
      'array[0].text':'changed data'
    })
  }
})

使用了 ‘array[0].text’ : ‘changed data’ 这样的值。但在实际使用中,我们对数组的中的某个元素的设置是动态的。即 我们通常应该是 ‘array[‘+index+’].text’ : ‘changed data’ ,其中index应该是一个动态的数字。但显然,这样是无法使用在对象的key中的。

所以,我只能使用了一个变通的方法。如下:

var param = {};
var string = "array["+index+"].text;
param[string] = 'changed data';
that.setData(param);

即提前把对象准备好。

希望以后可以有更好的方法。


版权声明:本文为hicoldcat原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。