收藏
回答

setdata修改数组中的某一个的时候

Page({

    data: {

                 a : [0,1,2,3,4,5,6.......................很长..]

    }

    xx : function() {

        this.data.a[0] = 1 // 只把第一个值改了。。

        this.setData({ 

           //请问这样修改 还有没有别的方式? 毕竟 数组a很长,我只想修改某一个值,渲染是会有延迟的。。

            a: this.data.a

        })

    }

})



谢谢!

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

3 个回答

  • 卢霄霄
    卢霄霄
    2018-08-09

    https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=a3fb98d3626e2ebb9cc057a9b644e4ef&highline=%E4%BF%AE%E6%94%B9%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9A%84%E4%B8%80%E9%A1%B9

    2018-08-09
    赞同 1
    回复 7
    • f2
      f2
      2018-08-09

      谢谢,我试一下

      2018-08-09
      回复
    • f2
      f2
      2018-08-09回复f2

      试了帖子里 官方的做法,发现不会用。。。

      2018-08-09
      回复
    • f2
      f2
      2018-08-09回复f2

      谢谢,可以局部刷新了。不过远程调试  还是总感觉卡卡的 ,

      2018-08-09
      回复
    • 卢霄霄
      卢霄霄
      2018-08-09回复f2

      你列表多长?每一项加载的东西特别多吗?

      2018-08-09
      回复
    • f2
      f2
      2018-08-09回复卢霄霄

      确实有点长,也查了资料,太长数据肯定渲染会卡,我在调整一下列表吧,这样加载应该不对。

      2018-08-09
      回复
    查看更多(2)
  • Yoฉันคิดถึง
    Yoฉันคิดถึง
    2018-08-13

    楼主最后怎么解决的

    2018-08-13
    赞同
    回复 1
    • f2
      f2
      2018-08-13

      用局部更新,给数组的某项赋值然后渲染,然后列表尽量别太长,要不然怎么弄渲染都是卡。

      2018-08-13
      回复
  • 东
    2018-08-10

    如果是长列表的问题,可以试试官方的长列表自定义组件适不适用

    https://github.com/wechat-miniprogram/recycle-view

    不过我还没用过

    2018-08-10
    赞同
    回复 1
    • f2
      f2
      2018-08-10

      这是好东西,谢谢

      2018-08-10
      回复
登录 后发表内容