微信小程序 setData 的坑 原创 2017年01月01日 17:57:56 标签:微信小程序 30607 最近在使用微信小程序的setData时,遇到了以下问题。如下: 官网文档在使用setD

微信小程序 setData 的坑

原创  2017年01月01日 17:57:56
  • 30607

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

官网文档在使用setData()设置数组对象的某个元素的属性时,是这么使用的:
Page({
  data: {
    array: [{text: 'init data'}],
  },
  changeItemInArray: function() {
    this.setData({
      'array[0].text':'changed data'
    })
  }
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
使用了 ‘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);
  • 1
  • 2
  • 3
  • 4
即提前把对象准备好。
希望以后可以有更好的方法。
版权声明:本文为博主原创文章,未经博主允许不得转载。
 
还能输入1000个字符
xunmengsj
  • xunmengsj
    2018-01-14 20:065楼
  • this.setData({
    ['array[' + index + '].text']:'changed data'
    })
u010297040
  • u010297040
    2017-07-22 18:284楼
  • 刚在网上看到了可以用es6的方式:
    var key = "XXX"
    this.setData({
    [key]:value
    })
  • 回复 1条回复
wenzhulove
Boxuerixin
qq_36131244
  • qq_36131244
    2017-03-29 18:292楼
  • 语法规定的有点蛋疼。。还不如跟vue一样呢
yu88288356
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值