收藏
回答

使用setData 填充大量数据

比如一个列表,每个项的属性值都很多。要做到无限上拉的话,在data里存一个数组,每次得到新数据了以后在数组后面追加,但是,每次setData都必须把整个数组set进去,数据量太大的话页面会很卡,有没有什么办法能够向数组后面追加新元素呢

最后一次编辑于  2018-02-14  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

5 个回答

  • 提莫队长别开枪是我
    提莫队长别开枪是我
    2018-02-27

    我又回去看了下文档,确实是这样,以前一直以为是防止排序错位的,谢谢了

    2018-02-27
    赞同
    回复
  • 远
    2018-02-27

    不是设置了key值以后 会避免重复渲染吗 ?

    2018-02-27
    赞同
    回复
  • 提莫队长别开枪是我
    提莫队长别开枪是我
    2018-02-27

    这种是常规实现方法,这样写好一点

    if(arr_append&&!arr_append.length){

        this.setData({

           arr_older: this.data.arr_older.concat(arr_append)

        })

    },

    但是我的主要问题是,当arr_older的长度非常长的时候,每一次这样setData会很耗时,即使arr_append的长度很小,所有有没有直接给data追加新增数据的方法



    2018-02-27
    赞同
    回复
  • ghost
    ghost
    2018-02-26

    let temp = this.data.arr_older

    for(var i=0;i<arr_append;i++)

    {

        temp.push(arr_append[i])

    }

    this.setData({

        arr_older: temp

    })

    楼主是这样一个逻辑吧!

    2018-02-26
    赞同
    回复
  • phoenixor
    phoenixor
    2018-02-14

    官方建设一次性加载数据不要超过1024

    你可以把Data数组分段,一次加载一段,然后在scroll-view中添加触底监听,监听到再加载第二段,以此类推

    2018-02-14
    赞同
    回复