收藏
回答

setData能否实现数组顶部插入数据

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 需求 setData 客户端 6.5.3 2.4.0

- 需求的场景描述(希望解决的问题)

现在页面有数据如下:

list:[{0},{1},{2},{3}]

往下拉滚动加载到历史数据如下:

history:[{4},{5},{6},{7}]


需求:

将history拼接到list前面,并且局部刷新(避免由于数据量大,影响渲染性能)

list:[{4},{5},{6},{7},{0},{1},{2},{3}]


- 希望提供的能力

查过api文档,setData目前只能更新某个item或者在尾部增加app数据。

所以,希望能实现数组顶部插入数据。



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

4 个回答

  • 马力
    马力
    02-22

    这个问题如何解决的?

    02-22
    赞同
    回复
  • 仙森ღ₅₂₀¹³¹⁴
    仙森ღ₅₂₀¹³¹⁴
    2018-12-20

    写一块隐藏view模块。里面的数据动态加载。然后上拉一屏后把 里面的数据 放到第二个view里,第一个view显示。

    2018-12-20
    赞同
    回复 6
    • Cycle
      Cycle
      2018-12-20

      呃,抱歉,我还是不太理解你的意思,我梳理了下,是说加个隐藏的view1,负责接收数据,然后上拉之后 ,把view1里的数据放到view2,接着,view1显示?

      那再拉一下,然后?

      2018-12-20
      回复
    • 仙森ღ₅₂₀¹³¹⁴
      仙森ღ₅₂₀¹³¹⁴
      2018-12-21回复Cycle

      重复 往view1里塞新数据然后老的view1数据往view2 unshift

      2018-12-21
      回复
    • Cycle
      Cycle
      2018-12-21回复仙森ღ₅₂₀¹³¹⁴

      明白了,可能我没描述清楚问题,其实我这需求可以理解为聊天里的查看历史聊天消息,然后按照兄弟你这思路,unshift完之后 页面刷新还是要通过setData刷新整个list的吧

      2018-12-21
      回复
    • 仙森ღ₅₂₀¹³¹⁴
      仙森ღ₅₂₀¹³¹⁴
      2018-12-21回复Cycle

      是刷新 view2的数据。但是view1是新push进去的。

      2018-12-21
      回复
    • Cycle
      Cycle
      2018-12-21回复仙森ღ₅₂₀¹³¹⁴

      大佬有空的话能否简单写个demo看看哩?【懵逼.jpg】

      2018-12-21
      回复
    查看更多(1)
  • 赵青山
    赵青山
    2018-12-20

    你这是懒加载的需求?

    2018-12-20
    赞同
    回复 1
    • Cycle
      Cycle
      2018-12-20

      是的,然后?

      2018-12-20
      回复
  • 后米米米米
    后米米米米
    2018-12-20

    你说的是这个吗?


    2018-12-20
    赞同
    回复 4
    • Cycle
      Cycle
      2018-12-20

      拼接是没问题啦,unshift或者concat都可以,但是用这种方式话,你得刷新整个list吧,我想要的是只刷新局部

      2018-12-20
      回复
    • 后米米米米
      后米米米米
      2018-12-20回复Cycle

      目前做不到...

      2018-12-20
      回复
    • Cycle
      Cycle
      2018-12-20回复后米米米米

      那,或者还有别的思路吗..【哭笑不得.jpg】

      2018-12-20
      回复
    • 海贝情缘
      海贝情缘
      05-27回复Cycle

      setData改变的数据都会重新渲染吧?目前也用到这块,老兄你找到方案没?

      05-27
      回复