微信小程序开发微信小程序微信小程序开发

小程序wepy上拉下拉解决方案

2018-05-28  本文已影响76人  一阵风fly

列表上拉下拉加载数据是再常见不过的功能,第一个想到的是scroll-view组件,里面有两个事件,分别是bindscrolltoupper(拉到最顶部)和bindscrolltolower(拉到最底部),用bindscrolltoupper实现上拉效果极差,稍微滑一下就触发,也就是说一言不合就下拉刷新列表,体验很差,网上百度了很久说是scroll-view不能和onPullDownRefresh联用,不明觉厉,最后总结一下终结办法

config = {
  navigationBarTitleText: '测试上拉下拉',
  // 不要把true写成 'true'
  enablePullDownRefresh: true,
  // 不配成dark的话三个加载中的点会看不到,其实是出来了,只是三个点是白色的,如果你的页面背景也是白的,那就看不出效果了
  backgroundTextStyle: 'dark'
}
<template>
  <view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="i">
    <view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="j">
      <view wx:if="{{i <= j}}">
        {{i}} * {{j}} = {{i * j}}
      </view>
    </view>
  </view>
</template>
onPullDownRefresh() {
  console.log('下拉刷新列表')
}
onReachBottom() {
  console.log('上拉加载下一页')
}
onPullDownRefresh() {
  console.log('下拉刷新列表')
  // 5秒模拟数据加载
  setTimeout(function () {
    // 不加这个方法真机下拉会一直处于刷新状态,无法复位
    wepy.stopPullDownRefresh()
  }, 5000)
}
onReachBottom() {
  console.log('上拉加载下一页')
}

完整代码

<template>
  <view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="i">
    <view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="j">
      <view wx:if="{{i <= j}}">
        {{i}} * {{j}} = {{i * j}}
      </view>
    </view>
  </view>
</template>

<script>
  import wepy from 'wepy'

  export default class Refresh extends wepy.page {
    config = {
      navigationBarTitleText: '测试上拉下拉',
      enablePullDownRefresh: true,
      backgroundTextStyle: 'dark'
    }
    components = {
    }
    data = {
    }

    computed = {
    }

    methods = {
    }

    events = {

    }
    onLoad() {
    }
    onPullDownRefresh() {
      console.log('下拉刷新列表')
      setTimeout(function () {
        // 不加这个方法真机下拉会一直处于刷新状态,无法复位
        wepy.stopPullDownRefresh()
      }, 5000)
    }
    onReachBottom() {
      console.log('上拉加载下一页')
      wepy.showToast({
        title: '上拉加载下一页',
        icon: 'none',
        mask: true,
        duration: 1000
      })
    }
  }
</script>

<style lang="less">
</style>

参考文章

上一篇下一篇

猜你喜欢

热点阅读