使用小程序的onReachBottom的时候如果在数据没加载更新完成,用户又触底?
发布于 5 年前 作者 maping 5016 次浏览 来自 官方Issues

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

2 回复

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

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

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
        })
      }
    })
  }  
}
回到顶部