感谢原作者XiaoBaiduQs,原文地址
微信小程序加载更多,是将之前的数据和点击加载后请求的数据用concat拼接在一起并执行setData,
下面是一个简单的栗子:
index.wxml代码如下
-
<view wx:for="{{duanziInfo}}" wx:for-item="name" wx:for-index="id">
-
<view class="duanzi-view">
-
<view class="duanzi-content">
-
<text class="dz-content">{{name.content}}</text>
-
</view>
-
</view>
-
</view>
-
<view class="button-wrapper">
-
<button type="default" size="default" loading="{{loading}}" disabled="{{disabled}}" bindtap="setLoading">
-
{{loadText}}
-
</button>
-
</view>
加载更多按钮绑定setLoading
index.js文件代码如下
[javascript] view plain copy
-
Page({
-
data: {
-
loadText:'加载更多',
-
duanziInfo:[]
-
},
-
//初始化请求
-
onLoad: function (res) {
-
var that = this
-
//内容
-
wx.request({
-
url: 'http://xxxxx.com/index.php?m=Industry&a=getDuanziInfo',
-
data: {token:token},
-
method: 'GET',
-
success: function(res){
-
console.log(res.data.result) //打印初始化数据
-
that.setData({
-
duanziInfo:res.data.result
-
})
-
}
-
})
-
},
-
//加载更多
-
setLoading: function(e) {
-
var duanziInfoBefore = this.data.duanziInfo
-
var that = this
-
wx.showToast({ //期间为了显示效果可以添加一个过度的弹出框提示“加载中”
-
title: '加载中',
-
icon: 'loading',
-
duration: 200
-
})
-
wx.request({
-
url: 'http://xxxxx.com/index.php?m=Industry&a=getDuanziInfo',
-
data: {token:token},
-
method: 'GET',
-
success: function(res){
-
console.log(duanziInfoBefore.concat(res.data.result)) //打印拼接之后数据
-
that.setData({
-
loadText:"数据请求中",
-
loading:true,
-
duanziInfo:duanziInfoBefore.concat(res.data.result),
-
loadText:"加载更多",
-
loading:false,
-
})
-
}
-
})
-
}
-
})
初始化和加载更多中的打印数据如下

|