zoukankan      html  css  js  c++  java
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离

    前端经常遇到上拉加载更多的需求,一般还涉及到翻页。小程序里已经给了下拉到底的触发方法onReachBottom(),这里记录下怎样使用这个方法实现下拉加载更多,有需要的直接看代码,有详细注释:

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

      data: {
        datalist: [], //.wxml文件需要绑定的列表,我这里用的数据类型是数组
        pagenum: 1, //初始页默认值为1
      },
    

    2、具体的请求过程,包含新老数据的数组合并,实现数据实时更新

      getdatalist: function () { //可在onLoad中设置为进入页面默认加载
       var that = this;
        wx.request({
          url: '请求地址',
          data: {
            "key": "某入参value",
            "pageNum": that.data.pagenum, //从数据里获取当前页数
            "pageSize": 10, //每页显示条数
          },
          method: "POST",
          success: function (res) {
            var arr1 = that.data.datalist; //从data获取当前datalist数组
            var arr2 = res.data; //从此次请求返回的数据中获取新数组
            arr1 = arr1.concat(arr2); //合并数组
            that.setData({
              datalist: arr1 //合并后更新datalist
            })
          },
          fail: function (err) { },//请求失败
          complete: function () { }//请求完成后执行的函数
        })
      }

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

      onReachBottom: function () { //触底开始下一页
        var that=this;
        var pagenum = that.data.pagenum + 1; //获取当前页数并+1
        that.setData({
          pagenum: pagenum, //更新当前页数
        })
        that.getdatalist();//重新调用请求获取下一页数据
      },
    

    4、如果想要实现无感加载,还可以在.json文件中给onReachBottom()设定触发距离,这样不用拉到最底部就开始触发onReachBottom翻页:
    "onReachBottomDistance":300 //可以在当前页也可以全局设置

  • 相关阅读:
    渲染管线中的顶点变换
    导入图片时设置默认格式
    查找丢失组件的预制体
    移动到目标点的方法
    关于material和sharedMaterial的问题
    代码创建动画状态机
    设计模式学习笔记--访问者模式
    .net core 基于Dapper 的分库分表开源框架(core-data)
    .Net 微服务架构技术栈的那些事
    Asp.Net Core 中IdentityServer4 实战之角色授权详解
  • 原文地址:https://www.cnblogs.com/10manongit/p/12687869.html
Copyright © 2011-2022 走看看