微信小程序中修改data中某复杂对象的某个属性

2023-11-10

例如:

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
        });

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序中修改data中某复杂对象的某个属性 的相关文章

随机推荐