普通的下拉刷新很简单,在onPullDownRefresh事件里面操作即可,
但目前遇到的问题是从别的页面跳转换回来,下拉刷新之后数据没有正确的回显,经过真机调试发现了问题,是翻页没传对导致的;;;;;;
普通的翻页操作:::
onPullDownRefresh() {
this.setData({
current:this.data.current + 1,
})
this.getList()
},
跳转别的页面再跳转回来,如果还是按照上述操作的话拿确实数据不会正常显示,,,,,,,
我的处理方式是定一个全局变量来做标记位 util.globalData.isFresh=false
因为我的全局变量是放在util里面的
我们一步步来操作一下,先跳转别的页面:
wx.navigateTo({
url:url
})
//这里把默认的isFresh置为true
util.globalData.isFresh=true
返回当前页面,onPullDownRefresh的处理方式:
onPullDownRefresh:function() {
wx.startPullDownRefresh()
let that = this
wx.showNavigationBarLoading()
wx.showLoading({
title: '加载中'
})
// 当前页码
let cur = that.data.current
//加载数据的list
let list = that.data.list
//全局标记,因为小程序的返回没有刷新当前页面,也能跟我的跳转方式有关,,,大家可以尝试别的跳转方式
const fresh = util.globalData.isFresh
if(fresh===true){
// 此处说明是从别的页面返回的,那就把页码变成1
cur=1
// 把list置空,,否则会把之前的数据也显示了,就造成数据不准确
list=[]
// 这里也很重要哦!!!!改为false,立马变成正常的翻页即可,,,,
util.globalData.isFresh = false
}else{
//反之就是正常的刷新
cur = that.data.current + 1
list = that.data.list
}
setTimeout(() =>{
wx.hideNavigationBarLoading()
wx.hideLoading()
that.setData({
current:cur,
list: list,
})
wx.stopPullDownRefresh()
that.getList()
},1500
}
加载数据列表的函数:
getList: function () {
wx.request({
url: util.globalData.interfaceUrl + '/list',
data: {
current: that.data.current,
size: that.data.size,
},
success(res) {
if(res.data.code === 0){
if(res.data.data.records.length > 0){
// 最重要的是这个赋值哦~~~~~~~
that.setData({
list: that.data.list.concat(res.data.data.records)
})
}
}else{
wx.showToast({
title: res.data.msg,
})
}
}
})
},