本函数根据个人项目接口数据封装自用,不具备普遍性,只是为了简化自己在项目中的操作。换句话说,这几行代码只适合借鉴学习,不适合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
})
}
复制代码