当前位置:   article > 正文

微信小程序 onReachBottom 上拉加载_小程序scroll-view onreachbottom

小程序scroll-view onreachbottom

1、首先在data里定义一下返回数据data,和翻页的页数pagenum

  1. data: {
  2. pagenum: 1, //初始页默认值为0
  3. loading: true,
  4. endnotice:true
  5. },
2、具体的请求过程,包含新老数据的数组合并,实现数据实时更新  
  1. getdatalist: function () { //可在onLoad中设置为进入页面默认加载
  2. var that = this;
  3. wx.request({
  4. url: 'xxxxxxx/api/wxapp/productGetList',
  5. data: {
  6. "key": "aa",
  7. "pageNum": that.data.pagenum, //从数据里获取当前页数
  8. "pageSize": 6, //每页显示条数
  9. },
  10. success: function (res) {
  11. // console.log(res.data.data.list);
  12. if (res.data.code == 1){
  13. var arr1 = that.data.datalist; //data获取当前datalist数组
  14. var arr2 = res.data.data.list; //从此次请求返回的数据中获取新数组
  15. arr1 = arr1.concat(arr2); //合并数组
  16. that.setData({
  17. loading: true,
  18. datalist: arr1 //合并后更新datalist
  19. })
  20. } else if(res.data.code == 0){
  21. that.setData({
  22. loading: true,
  23. endnotice: false
  24. })
  25. }
  26. },
  27. fail: function (err) { },//请求失败
  28. complete: function () { }//请求完成后执行的函数
  29. })
  30. },

 3、翻页时更新页码pagenum+1,并触发新一轮请求,和第2部形成循环。

  1. onReachBottom: function () { //触底开始下一页
  2. var that = this;
  3. var pagenum = that.data.pagenum + 1; //获取当前页数并+1
  4. that.setData({
  5. pagenum: pagenum, //更新当前页数
  6. loading:false,
  7. endnotice:true
  8. })
  9. that.getdatalist();//重新调用请求获取下一页数据
  10. },

4、json 页面设置

  1. {
  2. "onReachBottomDistance": 2
  3. }

5、php后端代码

  1. $pageNum = max(1, $this->request->request('pageNum'));
  2. $pageSize = $this->request->request('pageSize');
  3. $pageindex=($pageNum-1) * $pageSize;
  4. $list = Db::name('wxappproduct')->where('status', '=',1)->order('weigh desc,id')->limit($pageindex,$pageSize)->select();
  5. if ($list) {
  6. $this->success('返回成功', ['list' => $list]);
  7. }else{
  8. $this->error(__('no exists'));
  9. }

6、wxml页面

  1. <scroll-view scroll-y="true" class='product_body'>
  2. <template name="itmes">
  3. <navigator url="../../pages/productshow/index?id={{list.id}}">
  4. <image src='{{siteRoot}}{{list.smallimage}}' class="imagesty" mode="widthFix" lazy-load></image>
  5. <view class="protitle">{{list.name}}</view>
  6. </navigator>
  7. </template>
  8. </scroll-view>
  9. <!--循环输出列表 begin-->
  10. <view wx:for="{{datalist}}" wx:key="index" class="prolist">
  11. <template is="itmes" data="{{list:item,siteRoot:siteRoot}}" />
  12. </view>
  13. <!--循环输出列表 end-->
  14. <view class="loading" hidden="{{loading}}">
  15. <van-loading size="24px" type="spinner">加载中...</van-loading>
  16. </view>
  17. <view class="endnotice" hidden="{{endnotice}}">
  18. <van-divider contentPosition="center">数据已全部加载完毕</van-divider>
  19. </view>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/746457
推荐阅读
相关标签
  

闽ICP备14008679号