刚做小程序的过程中遇到一个小问题,使用setData更新数据时,想修改一个数组中的某个值,setData的参数是传入一个对象,我只想修改数组中某一条数据,那我就得传入一个带数组key的属性名进去
最开始我想当然的定一个变量传入进去
var keyname = 'buyAttr.attr[' + key + '].active';
this.setData({keyname:active})
然而发现并没有修改成功,最后查了下资料,原来keyname直接被作为属性名了,我们需要给属性名加上中括号,才能被识别为变量
var keyname = 'buyAttr.attr[' + key + '].active';
this.setData({[keyname]:active})
也可以直接
this.setData({['buyAttr.attr[' + key + '].active']:active})