挺简单的,就自己做了一个开关,控制是否下拉到最后一页,道理最后一页则关闭开关,第一页的时候打开开关,直接看代码吧
data: {
pageNo: 1, // 页码的递进数,当前页码
allPage: 1, // 总页数
canPull: true, // 下拉是否触发
}
getData(pageNo) {
http.getRequest('/common/shop/cart', { pageNo: pageNo},
(res) => {
if (res && res.code == 1) {
if (pageNo == 1) {
this.setData({ canPull: true }) // 初始化下拉开关
this.setData({
shopList: res.data.pagedata,
allPage: Math.ceil(res.data.dataRow / res.data.pageSize) // 总页数
})
} else {
if (this.data.allPage <= pageNo) { // 到了最后一页,关闭开关,翻页失效
this.setData({ canPull: false })
}
var newshopList = this.data.shopList.concat(res.data.pagedata) // 大于1页的拼接
this.setData({
shopList: newshopList
})
}
this.goodsCount()
}
},
(err) => {
console.log(err);
});
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
if (this.data.canPull) {
// 显示加载图标
wx.showLoading({
title: '玩命加载中',
})
this.setData({
pageNo: ++this.data.pageNo
})
this.getData(this.data.pageNo)
setTimeout(() => {
// 隐藏加载框
wx.hideLoading();
}, 1000)
}
},
交互可能还需要优化一下,还要下拉到最后的温馨提示等等。