收藏
回答

数组子项字段setData失效

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 微信iOS客户端 8.0.39 2.33.0
Page({
    data: {
        products: [
            {name: 'A', quantity: 0},
            {name: 'B', quantity: 0},
        ],


        total: 0,
    },


    plus({currentTarget: {id}}) {
        let {products, total} = this.data
        let index = Number(id)
        let {quantity} = products[index]
        quantity += 1
        total += 1
        let key = `products[${index}].quantity`
        console.log({key, quantity})
        this.setData(
            {
                key: quantity, 
                total
            },
            () => {
                console.log('quantity=', this.data.products[index].quantity)
            }
        )
    }
})


点击按钮,total 正常,而商品数量始终为0。

最后一次编辑于  2023-07-17
回答关注问题邀请回答
收藏

1 个回答

  • xuz
    xuz
    2023-07-18

    2023-07-18
    有用
    回复 6
    • 从君华
      从君华
      2023-07-18
      。。。你这个肯定生效的啊兄弟,也是我一开始的写法。我要的是更新指定的数组子项,而不是 setData 整个 products 数组。当数组只有一个子项变化时,完全用不着更新整个数组,这也是文档性能优化部分推荐的写法,但是呢,按照推荐的写法来写压根不生效,就很秀。
      2023-07-18
      回复
    • xuz
      xuz
      2023-07-21回复从君华
      2023-07-21
      回复
    • 从君华
      从君华
      2023-07-24回复xuz
      ...不是兄弟你回复之前自己不试一下自己发的有没有效果的吗??
      不管对不对就硬回复是吧。
      2023-07-24
      回复
    • xuz
      xuz
      2023-07-24回复从君华
      1、你的问题里有说只更新数据里的一项么?
      2、第二条为什么在你那没效果,你自己的问题吧
      2023-07-24
      回复
    • xuz
      xuz
      2023-07-24回复xuz
      有时候也要找找自己的问题
      2023-07-24
      回复
    查看更多(1)
登录 后发表内容