收藏
回答

如何在数组第一个元素追加数据

问题模块
教程反馈

下拉加载新数据,如何把请求到的新数据追加到数组的前面

目前想到的办法是在数组使用splice,在前面追加后好后再一起setData,有没有更高效的办法处理

最后一次编辑于  03-14  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

4 个回答

  • 祺爸💎
    祺爸💎
    03-14

    没有其他方法

    一般下拉是刷新整个页面

    03-14
    赞同
    回复
  • 郭辉
    郭辉
    03-14

    let a =[1,2,3,4]
    let b = [23,2,456,456]
    let c = [...a,...b]
    console.log(c)



    let a =[1,2,3,4]
    let b = [23,2,456,456]
    let d = b.concat(a)


    03-14
    赞同
    回复 1
    • a₂₀₁₈b⁶⁶⁶℡@404
      a₂₀₁₈b⁶⁶⁶℡@404
      03-14

      这是先追加好了再setData,原先setData过的数据不想再次setData

      03-14
      回复
  • 邱一欢
    邱一欢
    03-14

    用虚拟表格列表原理。 内存里存所有的数据,通过当前屏的起始位置的索引+一屏可以显示几条数据,获取显示数据, 把显示的数据setData给UI更新。上下拉滚动 动态计算起始位置,更新显示数据就可以。 一屏也就能放最多20条左右数据, 每次setdata 20条数据, 比你每次都把所有数据set进去要快很多。

    03-14
    赞同
    回复
  • Maverick
    Maverick
    03-18

    首次setData的数组用reverse颠倒过来

    后面追加数据正常加到数组后面(this.setData({[`arr[this.data.arr.length]`]:item}))

    通过WXSS   display:flex;flex-direction:column-reverse;  在视图层颠倒回来。


    每次追加的数据不止一条的话,就用二维数组,总之就是逻辑层颠倒数组,视图层再颠倒显示

    03-18
    赞同
    回复 1
    • 顾涛
      顾涛
      03-25

      感觉可行,先测试一下

      03-25
      回复