本函数根据个人项目接口数据封装自用,不具备普遍性,只是为了简化自己在项目中的操作。换句话说,这几行代码只适合借鉴学习,不适合ctrl+c&ctrl+v
//封装获取数据上拉加载函数const getList = (requestFun, page,listObj) => { //加入promise,可以做除了常规操作以为的操作 return new Promise((resolve,reject)=>{ if (page.data.requestFlag) return let list = `${listObj}` || 'list' page.setData({ requestFlag: true }) requestFun.then(res => { resolve(res) if (res.data.data) { page.setData({ [`${list}`]: [...page.data[`${list}`], ...res.data.data] }) page.data.pageNum++ page.data.pages = res.data.pages } page.setData({ requestFlag: false }) if (page.data.pageNum > page.data.pages) { page.data.requestFlag = true page.setData({ more: true, moreText: res.data.total > 0 ? '共 ' + res.data.total + ' 条数据已全部加载' : '暂无数据' }) } }) .catch(err => { page.setData({ requestFlag: false }) reject(err) }) })}//刷新数据,配合上面的函数getList使用const refresh=(page,obj)=>{ page.data.pages = 1 page.data.pageNum = 1 page.data.requestFlag = false page.setData({ list: [], more: false })}复制代码