2018-08-30(自己悄咪咪加个日期)
emmm....日期难道不是自动生成的嘛(算了还是自己加上好了,方便后面找~)
果然小sb哎。。。
好了好了先说正事,说完就可以吃月饼啦~(๑• . •๑)
触底刷新就是在触底的时候执行一次分页加载的函数,页码+1。所以,先说分页加载啦。
请求数据列表的时候,接口原本是写在onload里面,一次性请求所有。写了分页之后,假设一次加载10条,首先传参数给后台,比如page=1,加载出10条,触底的时候page+1,再传给后台,加载出接下来10条,把新返回的数组和之前的数组合并就可以,以此类推。
var app=getApp();
var getMore1 = function (that) {
var page = that.data.page;//页码
// 需求列表
app.util.request({
url: "entry/wxapp/DemandList",//这里是你的接口
cachetime: "0",
data: {
page: page,
type_id: that.data.type_id//这个不用管,是我传的筛选时候的参数,跟分页没关系
},
success: function (res) {
if (res.data == '' && that.data.xuqiuArr!='') {
wx.showToast({
title: '没有更多数据!',
icon: 'success',
duration: 2000
})
}
var arr = that.data.xuqiuArr//旧的数组
for (var i = 0; i < res.data.length; i++) {
arr.push(res.data[i])
}
that.setData({
xuqiuArr: arr
});
page++;
that.setData({
page: page
})
}
});
};
(上面的代码并没有写在page({ })里)
注意,data里一定要有page和数组的初始值,否则会报错:
/**
* 页面的初始数据
*/
data: {
page:1,
xuqiuArr:[]
}
如果页面是onshow的时候刷新的,记得要把数组清空,page初始化为1:
onShow: function () {
var that=this;
that.setData({
page:1,
xuqiuArr:[]
})
getMore1(that)
},
然后在每次触底的时候调用getMore1()函数就行了:
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
var that=this;
getMore1(that)
},
总结:看代码就行,文字大多是废话。。。主要是合并旧的数组和新的数组,然后记得页面刷新的时候及时清空数组和初始化页码就行。
(PS:想想还是决定把自己写的东西都发布出去,毕竟我这样的小菜鸟闭门也是造不出车的。
如果能有幸帮到哪位大兄弟或者小可爱那最好不过,有写的不对的地方请指正,一定及时改,有错望轻喷,蟹蟹 >﹏<)