我查过很多资料,猜测是内存泄露。不断加载下一页时,微信小程序的VM(内存不断增加)。没有找到释放的方法。
代码我已上传到gitee
https://gitee.com/ye_weihua/idolApp/blob/master/pages/weibo/list.vue
我查过很多资料,猜测是内存泄露。不断加载下一页时,微信小程序的VM(内存不断增加)。没有找到释放的方法。
代码我已上传到gitee
https://gitee.com/ye_weihua/idolApp/blob/master/pages/weibo/list.vue
/*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */
upCallback() {
let pageNum = this.pageNum; // 页码
this.$u.api
.getWeiboList({ pageNum: pageNum })
.then(data => {
// 接口返回的当前页数据列表 (数组)
const curPageData = data.curPageData;
//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
this.mescroll.endSuccess(curPageData.length);
//追加新数据
this.dataList = this.dataList.concat(curPageData);
// 页码加1
this.pageNum++;
})
.catch(() => {
//联网失败, 结束加载
this.mescroll.endErr();
});
}
1、upCallback回调里有page: {num // 当前页码} 所以可以不用自己再声明一个pageNum
2、不推荐使用endSuccess来结束滚动加载,这应该也是不断加载的原因(详情如下说明或mescroll-uni文档 https://www.mescroll.com/uni.html)
// 请求成功,隐藏加载状态
//方法一(推荐): 后台接口有返回列表的总页数 totalPage
this.mescroll.endByPage(curPageLen, totalPage);
//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
//this.mescroll.endBySize(curPageLen, totalSize);
//方法三(推荐): 您有其他方式知道是否有下一页 hasNext
//this.mescroll.endSuccess(curPageLen, hasNext);
//方法四 (不推荐),会存在一个小问题:比如列表共有20条数据,每页加载10条,共2页.
//如果只根据当前页的数据个数判断,则需翻到第三页才会知道无更多数据
//如果传了hasNext,则翻到第二页即可显示无更多数据.
//this.mescroll.endSuccess(curPageLen);
1***@qq.com (作者)
我改了,不对下拉还是会手机发热和微信小程序闪退
https://gitee.com/ye_weihua/idolApp/blob/dev/pages/weibo/list.vue
2021-07-30 15:20