今天遇到一件比较棘手的事情,如下图,后台返回的数据接口是这样的,我需要根据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
})完美~