官方文档是这样的:
changeItemInArray: function() { // you can use this way to modify a danamic data path this.setData({ 'array[0].text':'changed data' }) }, changeItemInObject: function(){ this.setData({ 'object.text': 'changed data' }); },
无奈自己写的时候还是会遇到不能解决的问题,比如
this.setData({ 'array[0].text':'changed data' })
这里面的arry[o]是动态的,'array[index].text',像这样显然是不行的,在网上搜了搜,虽然不知其所以然,在这里记录下来。
比如,要修改that.data.goods[0].price 的值,可以像这样,
这里是一个动态的变量
var price = 'goods['+index+'].price' this.setData({ [price]:'changed data' })
例:
toggle: function (e) { // console.log(e) var index = e.target.id; let showConObj = 'catalog['+index+'].showCon'; console.log(showConObj); this.setData({ [showConObj]: !this.data.catalog[index].showCon }) }