收藏
回答

使用小程序的onReachBottom的时候如果在数据没加载更新完成,用户又触底?

使用小程序的onReachBottom的时候如果在数据没加载更新完成,用户又触底加载,会导致两次加载了一样的数据,甚至用户多触发几次会·多次加载相同的数据,你们怎么处理

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

3 个回答

  • 祺爸💎
    祺爸💎
    2020-06-12

    自己做判断,还在加载中就不能再有新的加载,最基本的操作

    2020-06-12
    有用 1
    回复 3
    • 行囊
      行囊
      2020-06-12
      所以啊,多吸收大众的智慧
      2020-06-12
      回复
    • 行囊
      行囊
      2020-06-12
      我更想了解,是否有更官方的解决途径
      2020-06-12
      回复
    • 祺爸💎
      祺爸💎
      2020-06-12回复行囊
      要自己做的
      2020-06-12
      回复
  • 希奇
    希奇
    2020-06-12

    我这边做分页加载,往旧数组 添加 请求返回数据的时候,会去校验一下,是否符合请求预期。

    具体校验的形式,可能得看你们前后端之间的约定。

    2020-06-12
    有用
    回复
  • allen-黄河水
    allen-黄河水
    2020-06-12

    最简单的办法就是加一个锁变量,当请求开始时锁变量锁住,此状态下其他的请求一概不触发,当正在请求的数据返回之后,把锁变量的值打开,此时再进行请求就可以。

    data:{
      requestLock: flase
    },
    loadData() {
      const self = this
      let lock = this.data.requestLock
      if (!lock) {
        this.setData({
          requestLock: true
        })
        wx.request({
          success() {
            self.setData({
              requestLock: false
            })
          }
        })
      }  
    }
    
    2020-06-12
    有用
    回复 1
    • 行囊
      行囊
      2020-06-12
      我就是这样做的,,不过全局就一个锁的话就阻塞性太强了,可是每个事件都单独上锁又太繁冗
      2020-06-12
      回复
登录 后发表内容
问题标签