1. 程式人生 > >微信小程式 setData 的坑

微信小程式 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);

即提前把物件準備好。

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