例如:
data: {
person: {
name: "小明",
age: 18,
weight: 188
},
date: "2021-09-06",
title: "这是一个标题"
...
}
在微信小程序中修改上述data中的 date 或 title属性, 可以直接 使用如下操作:
this.setData({title: '这是修改后的标题'})
但是如果我想修改person中的name属性,要怎么办呢?
方法一 :获取person的数据,修改name后直接setData
let person = this.data.person
person.name = '小刚'
this.setData({person})
方法二: 利用解构赋值,然后重写要修改的属性
this.setData({
person: {
...person,
name: '小刚'
}
})
方法三(推荐):获取要修改的属性名的字符串形式,然后直接setData
let propertyStr = 'person.name'
this.setData({
[propertyStr]:'小刚'
})
或
this.setData({
['person.name']:'小刚'}
)
当data的对象中有数组对象时,也使用方法一。
let v = this.data.questions;
v[index].bfinished = finished;
this.setData({
questions:v
});