收藏
回答

关于数组元素更新遇到的问题,不知各位是否有类似经历?

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

{

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

最后一次编辑于  09-04
回答关注问题邀请回答
收藏

1 个回答

  • 💭
    💭
    09-04

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

    例如: let gendar = "member[0].gendar"

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

    09-04
    赞同
    回复 1
    • 琳
      09-04
      我说的不是这个意思,我是说 member[0].gendar和 member.0.gendar这两种形式的效果不同
      09-04
      回复
问题标签