云数据库更新操作,对于一个对象数组,例如:
{
member: [
{name: "张老三", gendar: "男"}, {name: "王老五", gendar: "男"}
]
}
如果想把张老三性别改成女,如下这种写法无效
data: {
"member[0].gendar": "女"
}
必须写成这样的才可以更新。
data: {
"member.0.gendar": "女"
}
但是在小程序页面代码中,同样的操作,则必须写成:
this.setData({
"member[0].gendar": "女"
})
如果写成如下形式,其它非本次更新的属性将会全部被删除掉,也就是说name没了。
this.setData({
"member.0.gendar": "女"
})
请问这算不算一个BUG呢?还是官方有更高级的玩法,我才疏学浅不理解呢?
"member[0].gendar"可以用一个变量存储起来
例如: let gendar = "member[0].gendar"
然后在setData的时候 key为[gendar] 即可