小程序分页加载

长长的列表,需要进行分页加载,在小程序中分页特别简单,只需要在json文件中设置enablePullDownRefresh为true,调用onPullDownRefresh(监听用户下拉动作)和onReachBottom(页面上拉)两个方法就可以了;
当然还需要在获取列表的时候进行一些操作,代码如下:

data
	page: 1,
    pageSize: 4,
    list:[],
    hasData:true
json
"enablePullDownRefresh": true
js

这是获取列表页和分页的流程;判断他每次请求时候还有没有值,如果没有值了就赋值原数组,有值的话就继续拼接显示;

 getList(){
    // this指向
    const _this = this;
    // 需要传递的值
    var data = {
        token:wx.getStorageSync('token'),  
        page:this.data.page
      }
      // ajax请求
    wx.request({
      // basicURL是在app.js中配置的域名;
      url: _this.data.basicURL+'Goods/index',
      method:"GET",
      data:data,
      header: {
        "content-type":"application/x-www-form-urlencoded"
      },
      success(res){
    if(res.data.status == 1){
      // 返回的数组
      var result = res.data.result;
      // 如果返回的列表的长度没有我每页请求的长度达.代表之后没有新内容了
      // 没有数据就把当前list给他赋值就好了,并且让hasData为false,等下次在进入这个判断条件的时候,就不让他在累加了,否则会一直刷出最后几条数据,然后弹出提示框提示没有值了
      if(result.length < _this.data.pageSize){
        if(_this.data.hasData){
              _this.setData({
                list: _this.data.list.concat(result),
                hasData:false
              })
              wx.showToast({
                title: '没有数据了哦',
                icon: "none",
                duration: 2000
              })
            }
      }else{
        // 如果还有值,就把请求出来的数组和list拼接在一起,并使它的page+1
        _this.setData({
          list: _this.data.list.concat(result),
          page: _this.data.page + 1
        })
      }
    } 
      }
    })
  },

这个函数需要在onReady、onPullDownRefresh、onReachBottom三个函数中调用一次,这样下拉。上拉加载就完成了;

 onReady: function () {
    this.getList();
  },
  
  onPullDownRefresh: function (e) {
    this.getList();
  },

  onReachBottom: function () {
    this.getList();
  },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值