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

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

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

效果预览 
不用scroll-view组件 
在需要的页面打开配置(不需要在全局配置,我用的是wepy,不需要在app.wpy写)

 

  1. config = {
  2. navigationBarTitleText: '测试上拉下拉',
  3. // 不要把true写成 'true'
  4. enablePullDownRefresh: true,
  5. // 不配成dark的话三个加载中的点会看不到,其实是出来了,只是三个点是白色的,如果你的页面背景也是白的,那就看不出效果了
  6. backgroundTextStyle: 'dark'
  7. }

来个长长的列表

 

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

关键事件

 

  1. onPullDownRefresh() {
  2. console.log('下拉刷新列表')
  3. }
  4. onReachBottom() {
  5. console.log('上拉加载下一页')
  6. }

在微信开发者工具跑起来没什么问题,在真机跑一下,三个点下来以后竟然不上去了,很尴尬,最后在参考文章第二篇的评论里一位网友的回答解决了这个问题,手动让三个点弹回去,wx.stopPullDownRefresh(),小程序API里有,可以点这里自行看一下

 

  1. onPullDownRefresh() {
  2. console.log('下拉刷新列表')
  3. // 5秒模拟数据加载
  4. setTimeout(function () {
  5. // 不加这个方法真机下拉会一直处于刷新状态,无法复位
  6. wepy.stopPullDownRefresh()
  7. }, 5000)
  8. }
  9. onReachBottom() {
  10. console.log('上拉加载下一页')
  11. }

完整代码

 

  1. <template>
  2. <view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="i">
  3. <view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="j">
  4. <view wx:if="{{i <= j}}">
  5. {{i}} * {{j}} = {{i * j}}
  6. </view>
  7. </view>
  8. </view>
  9. </template>
  10.  
  11. <script>
  12. import wepy from 'wepy'
  13.  
  14. export default class Refresh extends wepy.page {
  15. config = {
  16. navigationBarTitleText: '测试上拉下拉',
  17. enablePullDownRefresh: true,
  18. backgroundTextStyle: 'dark'
  19. }
  20. components = {
  21. }
  22. data = {
  23. }
  24.  
  25. computed = {
  26. }
  27.  
  28. methods = {
  29. }
  30.  
  31. events = {
  32.  
  33. }
  34. onLoad() {
  35. }
  36. onPullDownRefresh() {
  37. console.log('下拉刷新列表')
  38. setTimeout(function () {
  39. // 不加这个方法真机下拉会一直处于刷新状态,无法复位
  40. wepy.stopPullDownRefresh()
  41. }, 5000)
  42. }
  43. onReachBottom() {
  44. console.log('上拉加载下一页')
  45. wepy.showToast({
  46. title: '上拉加载下一页',
  47. icon: 'none',
  48. mask: true,
  49. duration: 1000
  50. })
  51. }
  52. }
  53. </script>
  54.  
  55. <style lang="less">
  56. </style>

 

 


【本站声明】
  1、本站文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系。
  2、本网站不对文章中所涉及的内容真实性、准确性、可靠性负责,仅系客观性描述,如您需要了解该类商品/服务详细的资讯,请您直接与该类商品/服务的提供者联系。


KESION 科汛软件

KESION 科汛软件是国内领先的在线教育软件及私域社交电商软件服务提供商,长期专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。
公司核心产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化独立部署品牌网校和在线教育咨询等。

KESION 不断通过技术创新,提供产品和服务,助力企业向数字化转型,通过科技驱动商业革新,让商业变得更智慧!



▼点击进入科汛官网了解更多



热门标签
SaaS
上/下篇
换一换相关推荐
精选内容
热点精选