小程序分页加载数据

本文介绍了一个小程序中实现账单列表数据加载和更新的方法。通过监听页面加载和上拉触底事件,使用Promise处理异步请求,实现了账单数据的初次加载及滚动加载更多功能。同时,对获取的数据进行了格式化处理,确保日期显示符合用户习惯。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// pages/billlist/index.js
const app = getApp();
Page({
  /*页面的初始数据*/
  data: {
    page: 1,
    loading: false,
    loadtxt: '正在加载...',
    list: []
  },

  /*生命周期函数--监听页面加载*/
  onLoad: function (options) {
    this.setData({
      option: options
    })
    this.getlist();
  },
  getlist: function () {
    app.fetch.newData.result({ API_URL: app.globalData.api + 'getGoldFlowList.do?ipage=' + this.data.page + '&ipagesize=15'}).then(({ data }) => {
      if (data.object && data.object.list && data.object.list.length) {
        let list = data.object.list;
        for (let i = 0; i < list.length; i++) {
          list[i].c_create_datetime = app.util.formatDate(new Date(list[i].c_create_datetime));
        }
        this.setData({
          list: this.data.list.concat(list)
        })
        if (this.data.page == data.iTotalPage) {
          this.setData({
            loading: true,
            loadtxt: '无更多内容'
          })
        } else {
          this.setData({
            loading: false,
            loadtxt: '正在加载...'
          })
        }
      } else if (this.data.list.length) {
        this.setData({
          loading: true,
          loadtxt: '无更多内容'
        })
      } else {
        this.setData({
          loading: true,
          loadtxt: '暂无数据'
        })
      }
    }).catch(e => {
      this.setData({
        loading: false,
        loadtxt: '数据加载异常'
      })
    })
  },
  /*页面上拉触底事件的处理函数*/
  onReachBottom: function () {
    if (!this.data.loading) {
      this.setData({
        loading: true,
        page: this.data.page + 1
      })
      this.getlist()
    }
  }
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值