关于数组元素更新遇到的问题,不知各位是否有类似经历?
发布于 6 年前 作者 vren 13693 次浏览 来自 官方Issues

云数据库更新操作,对于一个对象数组,例如:

{

    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呢?还是官方有更高级的玩法,我才疏学浅不理解呢?

1 回复

"member[0].gendar"可以用一个变量存储起来

例如: let gendar = “member[0].gendar”

然后在setData的时候 key为[gendar] 即可

回到顶部