小程序无法通过this.data.a = ***这种直接的形式改变某个值,特别是对象或者数组的改变稍微麻烦点,可以使用如下方法
Page({
data: {
array: [{text: 'init data'}],
goods: [
{id: 1,pic: '/image/goods1.png'},
{id: 1,pic: '/image/goods1.png'}
],
},
onLoad:function(options){
let id = options.id
let index = 1
let str = "goods["+index+"].id"; //直接拼接成字符串
this.setData({
[str]:id //用中括号包裹这个字符串
})
}
changeItemInArray: function() {
this.setData({
'array[0].text':'changed data'
})
}
})
有时候想给属性值的对象或者数组进行赋值,例如给data.goods.id进行赋值,就要用另外的方式
Page({
data:{
goods: {
id: 1,
},
},
onLoad:function(options){
let id = options.id;
let str = "goods.id"; //直接拼接成字符串
this.setData({
[str]:id //用中括号包裹这个字符串
})