收藏
回答

setdata修改数组对象中的一个对象的某个字段,现在不支持了吗?

array:[{
text:'123',
checked:false,
disabled:false
},{
text:'123',
checked:false,
disabled:false
},{
text:'123',
checked:false,
disabled:false
},{
text:'123',
checked:false,
disabled:false
}]
this.setData({
['array[1].check']:true
})
let key = 'array[' + 1 + '].checked'
    this.setData({
      [key]: true
    })

都不生效,求大神帮忙看看

回答关注问题邀请回答
收藏

3 个回答

  • 努力努力要努力zzz
    努力努力要努力zzz
    2019-03-12

    官方文档只说可以用第一种方法更改,没有说key可以作为一个变量名来进行setData,又可能是不支持


    2019-03-12
    有用 1
    回复 2
    • 伟烽
      伟烽
      2019-03-12

      嗯,多谢,已经解决了

      2019-03-12
      回复
    • 小晴儿.
      小晴儿.
      2019-08-15回复伟烽
      分享出来喽
      2019-08-15
      回复
  • 騁爲
    騁爲
    2019-03-12
    this.setData({
        'array[1].check': true
    })


    key 不需要 [] 吧

    2019-03-12
    有用 1
    回复 5
    • 伟烽
      伟烽
      2019-03-12

      不行的,已经试了好几种写法了,都不生效,

      2019-03-12
      回复
    • 伟烽
      伟烽
      2019-03-12回复伟烽

      ???

      2019-03-12
      回复
    • 騁爲
      騁爲
      2019-03-12回复伟烽

      我项目中也有好些地方用到了局部更新,但是我的代码类似如下:

      let selectedIndex = 1;
      let updateData = {};
      Reflect.set(updateData, `monthReports[${selectedIndex}]`, data);
      // 其他需要更新的数据...
      this.setData(updateData);


      2019-03-12
      回复
    • 伟烽
      伟烽
      2019-03-12回复騁爲

      官方文档提供的思路是可以解决修改局部数据的,刚才是我这边的问题

      2019-03-12
      回复
    • No Matter
      No Matter
      2019-07-18回复伟烽
      官方的网址在那个地方
      2019-07-18
      回复
  • _
    _
    2019-03-12

    var arr=that.data.arr[index].checked

    that.setData({

     [arr]:true,

    })

    这样试试

    2019-03-12
    有用
    回复 6
    • 伟烽
      伟烽
      2019-03-12

      多谢,已经解决了

      2019-03-12
      回复
    • 2019-03-12

      请问

      var arr=that.data.arr[index].checked

      that.setData({

       [arr]:true,

      })

      这样多级的数组为什么还是改不了


      2019-03-12
      回复
    • _
      _
      2019-03-13回复

      var arr=arr[index].checked

      that.setData({}

      [arr]:true,

      ])  这样试试

      2019-03-13
      回复
    • 2019-03-13回复

      let arr = this.data.addCartList[index].goodList[idx].checked;

      this.setData({

      [arr]: !this.data.addCartList[index].goodList[idx].checked

      })

      并没用

      2019-03-13
      回复
    • 卢霄霄
      卢霄霄
      2019-03-14回复

      let arr = 'this.data.addCartList[index].goodList[idx].checked';

      2019-03-14
      回复
    查看更多(1)
登录 后发表内容