问题小程序setData:单次设置不能超过1024kb;
一般出现情况,上滑动列表加载更多数据时,动态加入数组元素
例如将新数组与渲染数组合并;
解决办法:
利用小程序提供的思路
// 对于对象或数组字段,可以直接修改一个其下的子字段,这样做通常比修改整个对象或数组更好;
实现demo
//wxml
<view wx:for='{{arrDemo}}' wx:key='a' wx:for-item='arrData' wx:for-index='arrIndex'>
<view wx:for='{{arrData}}' wx:for-item='arrItem'>
<view>第{{arrIndex}}组数据</view>
<view>{{arrItem.name}}</view>
<view>{{arrItem.id}}</view>
</view>
</view>
var setTimer ;
data: {
arrDemo:[],
page:1
},
onLoad: function (options) {
this.ajax(0);//模拟网络请求;
},
ajax(num){
//模拟请求数据;
var data = [
{
name: '123456',
id: 1
},
{
name: '123456',
id: 2
},
{
name: '123456',
id: 3
},
{
name: '123456',
id: 4
},
{
name: '123456',
id: 5
}
];
//模拟请求数据end------------------
//模拟网络延;
if(num>10){
clearTimeout(setTimer);
}else{
// 时间控制器模拟网络请求
setTimer = setTimeout(function () {
//关键代码------------------
let index = this.data.page -1;
this.data.page++;//标记当前二维数组下标
this.setData({
['arrDemo[' + index +']']:data,//二维数组动态赋值
page:this.data.page//修改当前下标
});
//假装有多次请求
this.ajax(num+1);
}.bind(this), 1000);
}
}