提交 ef4b31e0 编写于 作者: DCloud-WZF's avatar DCloud-WZF 💬

test(pulldown refresh): 优化下拉刷新示例并补充测试

上级 354384a3
const PAGE_PATH = "/pages/API/pull-down-refresh/pull-down-refresh"
describe("payment", () => {
if (process.env.uniTestPlatformInfo.indexOf('web') > -1 || process.env.UNI_AUTOMATOR_APP_WEBVIEW === 'true') {
it('web || app-webview', () => {
expect(1).toBe(1)
})
return
}
it("trigger pulldown refresh by swipe", async () => {
const page = await program.navigateTo(PAGE_PATH)
await page.waitFor('view')
await page.waitFor(4000)
await page.setData({
pulldownRefreshTriggered: false
})
await program.swipe({
startPoint: {
x: 100,
y: 400
},
endPoint: {
x: 100,
y: 800
},
duration: 1000
})
await page.waitFor(1500)
expect(await page.data('pulldownRefreshTriggered')).toBe(true)
});
});
<template> <template>
<scroll-view style="flex: 1;"> <!-- #ifdef APP -->
<!-- 实际开发中,长列表应该使用list-view --> <scroll-view style="flex: 1;">
<view class="uni-padding-wrap uni-common-mt"> <!-- #endif -->
<text class="text" v-for="(num,index) in data" :key="index">list - {{num}}</text> <!-- 实际开发中,长列表应该使用list-view -->
<view v-if="showLoadMore">{{loadMoreText}}</view> <view class="uni-padding-wrap uni-common-mt">
</view> <text class="text" v-for="(num,index) in data" :key="index">list - {{num}}</text>
</scroll-view> <view v-if="showLoadMore">{{loadMoreText}}</view>
</template> </view>
<script lang="uts"> <!-- #ifdef APP -->
export default { </scroll-view>
data() { <!-- #endif -->
return { </template>
data: [] as Array<number>, <script lang="uts">
loadMoreText: "加载中...", export default {
showLoadMore: false, data() {
max: 0 return {
} data: [] as Array<number>,
}, loadMoreText: "加载中...",
onReady() { showLoadMore: false,
uni.startPullDownRefresh(); max: 0,
this.initData(); pulldownRefreshTriggered: false
}, }
onReachBottom() { },
console.log("onReachBottom"); onReady() {
if (this.max > 40) { uni.startPullDownRefresh();
this.loadMoreText = "没有更多数据了!" this.initData();
return; },
} onReachBottom() {
this.showLoadMore = true; console.log("onReachBottom");
setTimeout(() => { if (this.max > 40) {
this.setListData(); this.loadMoreText = "没有更多数据了!"
}, 300); return;
}, }
onPullDownRefresh() { this.showLoadMore = true;
console.log('onPullDownRefresh'); setTimeout(() => {
this.initData(); this.setListData();
}, }, 300);
methods: { },
initData(){ onPullDownRefresh() {
setTimeout(() => { console.log('onPullDownRefresh');
this.max = 0; this.pulldownRefreshTriggered = true
this.data = []; this.initData();
let data:Array<number> = []; },
this.max += 20; methods: {
for (let i:number = this.max - 19; i < this.max + 1; i++) { initData() {
data.push(i) setTimeout(() => {
} this.max = 0;
this.data = this.data.concat(data); this.data = [];
uni.stopPullDownRefresh(); let data : Array<number> = [];
}, 1000); this.max += 20;
}, for (let i : number = this.max - 19; i < this.max + 1; i++) {
setListData() { data.push(i)
let data:Array<number> = []; }
this.max += 10; this.data = this.data.concat(data);
for (let i:number = this.max - 9; i < this.max + 1; i++) { uni.stopPullDownRefresh();
data.push(i) }, 1000);
} },
this.data = this.data.concat(data); setListData() {
} let data : Array<number> = [];
} this.max += 10;
} for (let i : number = this.max - 9; i < this.max + 1; i++) {
</script> data.push(i)
}
<style> this.data = this.data.concat(data);
.text { }
margin: 6px 0; }
width:100%; }
background-color: #fff; </script>
height: 52px;
line-height: 52px; <style>
text-align: center; .text {
color: #555; margin: 6px 0;
border-radius: 4px; width: 100%;
} background-color: #fff;
height: 52px;
line-height: 52px;
text-align: center;
color: #555;
border-radius: 4px;
}
</style> </style>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册