小程序动态修改data

220 阅读1分钟

今天遇到一件比较棘手的事情,如下图,后台返回的数据接口是这样的,我需要根据sku渲染不同的数据


触发某些事件对列表里面的某项做修改,如下图,我想将某个数量+1

let amount=this.data.productCoupons['sku_'+this.data.skuId][index].customerObtainedAmount;
this.setData({    
    ["productCoupons['sku_'+this.data.skuId]['+index+'].customerObtainedAmount"]:amount+1
})


报错了,它告诉我productCoupons['sku_'+this.data.skuId]这里出错了,[ ] 里面只能放0-9的数字,而我放了一个拼接字符串,平常我们获取对象的属性是可以通过这种方式获取的,但是小程序这里设置data确不可以,那怎么办呢?使用es6的模板字符串完美解决


this.setData({    
    [`productCoupons.${'sku_'+this.data.skuId}[${index}].customerObtainedAmount`]:amount+1
})

完美~