最近在使用微信小程序的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);
即提前把对象准备好。
希望以后可以有更好的方法。