赞
踩
"enablePullDownRefresh": true
。onPullDownRefresh() {}
监听用户下拉动作。// 本质是获取首页的数据
onPullDownRefresh(){
this.setData({pageNum: 1}, this.getList)
},
getList(){
const {pageNum, pageSize} = this.data
io.getList({pageNum, pageSize})
.then(({data}) => {
this.setData({list: data})
})
.finally(() => {
wx.stopPullDownRefresh() // 停止刷新
})
}
scroll-view
的下拉,刷新首页数据:<scroll-view refresher-enabled="true" bindrefresherrefresh="hanndlePullDownRefresh" refresher-triggered="{{isPulldownRefresh}}"></scroll-view> data:{ isPulldownRefresh: false, }, // 本质是获取首页的数据 hanndlePullDownRefresh(){ this.setData({pageNum: 1}, this.getList) }, getList(){ const {pageNum, pageSize} = this.data io.getList({pageNum, pageSize}) .then(({data}) => { this.setData({list: data}) }) .finally(() => { this.setData({isPulldownRefresh: false}) // 设置当前下拉刷新状态 }) }
"onReachBottomDistance":50
触发距离。onReachBottom() {}
监听上拉触底事件。// 本质是获取下一页的数据并且和当前的数据合并 onReachBottom(){ const {pageNum, totalPage} = this.data // 判断到是最后一页,则停止刷新 if(pageNum+1 > totalPage) return // 获取下一页数据 this.setData({pageNum: pageNum+1}, this.getList) }, getList(){ const {pageNum, pageSize, list} = this.data io.getList({pageNum, pageSize}).then(({data, pages}) => { this.setData({ list: list.concat(data), // 获取到的数据和当前的数据合并 totalPage: pages, }) }) }
scroll-view
的滚动条上拉,加载下一页数据:<scroll-view scroll-y="true" bindscrolltolower="handleReachBottom"> // 本质是获取下一页的数据并且和当前的数据合并 handleReachBottom(){ const {pageNum, totalPage} = this.data // 判断到是最后一页,则停止刷新 if(pageNum+1 > totalPage) return // 获取下一页数据 this.setData({pageNum: pageNum+1}, this.getList) }, getList(){ const {pageNum, pageSize, list} = this.data io.getList({pageNum, pageSize}).then(({data, pages}) => { this.setData({ list: list.concat(data), // 获取到的数据和当前的数据合并 totalPage: pages, }) }) }
切换页面,可能会出现
scroll-view
滚动条没有回到顶部的情况。
原因:之前的页面可能是未被销毁,仍然在页面栈中,因此切换回来之后还保持之前的状态。
解决方法:切换回来页面之后,首先清空scroll-view
的数据即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。