钉钉文档没有写有关上拉加载的内容,百度出来的也没有,基本都是微信小程序的。但是微信的和钉钉又不共用。找到了一个支付宝小程序的上拉方法试了一下可以,分享给大家。
index.axml
<view class="addTop">
<view hidden="{{load}}" class="addDom">
<text>正在加载中...</text>
</view>
<view hidden="{{loading}}" class="addDom">
<text>没有更多内容了</text>
</view>
</view>
index.js
let app = getApp();//封装的http请求
Page({
data: {
list:[],
load:true,
loading:true,
total:10
data:{
USER_ID:3,
pageNum:1,
pageSize:10
}
},
onPullDownRefresh() {
this.setData({
data:{
USER_ID:3,
pageNum:1,
pageSize:10
},
load:false,
loading:true
})
app.https("GET", "",this.data.data).then(res => {
if(res.success){
this.setData({
list:res.data
})
this.stopPullDownRefresh()
}else{
dd.showToast({content: res.message})
}
})
},
stopPullDownRefresh() {
dd.stopPullDownRefresh({
complete(res) {
console.log(res, new Date())
}
})
},
onLoad() {
this.setData({
list:[]
})
this.getData()
},
onReachBottom(){
this.setData({
data:{
USER_ID:3,
pageNum:this.data.data.pageNum + 1,
pageSize:10
},
load:false,
loading:true
})
this.getData()
},
getData(){
app.https("GET", "",this.data.data).then(res => {
if(res.success){
this.setData({
total:Math.ceil(res.totalPage.total / this.data.data.pageSize)
})
if(this.data.data.pageNum <= this.data.total){
this.setData({
list:this.data.list.concat(res.data),
})
this.setData({
load:false,
loading:true
})
}else{
this.setData({
load:true,
loading:false
})
}
}else{
dd.showToast({content: res.message})
}
})
}
});
index.acss
.addDom{
display:flex;color:#999;flex-direction:row;align-items:center;align-self:center;justify-content:center; padding:10px 0;
}
index.json
{"pullRefresh": true}