微信小程序上拉加载重复请求
showList.js
requestFlag: false,
handleLower: function (event) {
console.log("now page" + this.data.pageindex);
var that = this;
if (!this.requestFlag) {
this.requestFlag = true;
that.setData({ loading: true, loadingComplete: false });
wx.showNavigationBarLoading();
that.getStarData();
}
}
<br />
showList.wxml
<import src="/pages/template/list-template.wxml" />
<view class="container">
<view class="show-content" wx:if="{{haveStars}}">
<scroll-view class="scroll-stars" style="height:{{windowHeight}}rpx" upper-threshold="0" lower-threshold="0" scroll-y="true" bindscrolltolower="handleLower" bindscrolltoupper="handleUpper">
<block wx:for="{{stars}}">
<template is="projectSimpleInfo" data="{{...item}}"></template>
</block>
<view class="loading" hidden="{{!loading}}">载入中...</view>
<view class="complete" hidden="{{!loadingComplete}}">已加载全部</view>
</scroll-view>
</view>
<view wx:else>
<view class="errorMsg" wx:if="{{message}}">{{message}}</view>
<text>no data</text>
</view>
</view>
<br />
定义一个文件内的 flag 变量默认为 false, 执行上拉加载时将其设为 true,阻止请求阶段再次执行上拉加载造成多次请求,当wx.request()
开始执行回调函数时再将其置为 false。
- 将其设置在 data 中是否有用未知。
- 重复请求的原因未知,在 macOS 中的开发者工具 ( Version 0.15.152800 ( 0.15.152800 )) 调试正常,实机测试 ( iphone6p WeChat 6.5.6 ) 时才会造成重复请求。