开发中经常会从后台拿到类似数据:
data:{
info1:{
name: 'aa',
address: 'bb'
...
},
info2: [
{ name: 'aa' }, { name: 'bb' } ...
]
}
如果要修改 `name = 'cc'` 怎么做呢?
一般我们这么写:
this.data.info1.name = 'cc' // 没用
this.setData({
info1.name: 'cc', // 编辑器报错
'info1.name': 'cc' // 也没用
})
解决方案:
- 第一步:先用一个变量,把(info1.name)用字符串拼接起来。
- 第二步:将变量写在[]里面即可。
const _k1 = `info1.name` // 拼接已知属性
const _k2 = `info2[${index}].name` // 拼接动态属性
this.setData({
[_k1]: 'cc',
[_k2]: 'cc'
})
参考文档: 微信小程序用setData修改数组或对象中的一个属性值
感谢浏览,欢迎评论指正,转载请标明出处。