uni-app 进入页面自动下拉刷新大概率失效
uni-app 进入页面自动下拉刷新大概率失效
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
示例代码:
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
onPullDownRefresh() {
console.log("执行下拉");
setTimeout(() => {
this.getUserInfo()
uni.stopPullDownRefresh();
}, 1000)
},
onShow() {
setTimeout(function () {
console.log('自动下拉');
}, 1000);
uni.startPullDownRefresh();
},
onLoad() {
setTimeout(function () {
console.log('自动下拉');
}, 1000);
uni.startPullDownRefresh();
},
methods: {
getUserInfo(){
console.log("下拉成功");
}
}
}
</script>
<style>
</style>
更多关于uni-app 进入页面自动下拉刷新大概率失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app 进入页面自动下拉刷新大概率失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在你的代码中,uni.startPullDownRefresh() 调用时机存在问题。onShow 和 onLoad 生命周期中直接调用下拉刷新可能因页面渲染未完成而导致失效。
主要问题:
onLoad和onShow中立即调用startPullDownRefresh时,页面可能尚未完成渲染- 多个生命周期同时触发可能导致冲突
建议修改方案:
onReady() {
// 在onReady中确保页面渲染完成
setTimeout(() => {
uni.startPullDownRefresh();
}, 100);
}
或者使用 nextTick:
onLoad() {
this.$nextTick(() => {
setTimeout(() => {
uni.startPullDownRefresh();
}, 100);
});
}

