uni-app scroll-view中的@refresherrefresh(自定义下拉刷新)在最新3.2.9版本上未触发
uni-app scroll-view中的@refresherrefresh(自定义下拉刷新)在最新3.2.9版本上未触发
| 信息类别 | 详细信息 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| 版本号 | win10, 3.2.9 |
| 手机系统 | 全部 |
| 页面类型 | vue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
测试过的手机:
- iPhone 7 Plus
- meizu X8
示例代码:
<template>
<view>
<scroll-view style="height: 300px;" scroll-y="true" refresher-enabled="true" :refresher-triggered="triggered"
:refresher-threshold="100" refresher-background="lightgreen" @refresherrefresh="onRefresh"
@refresherrestore="onRestore" @refresherabort="onAbort">
<view>demo</view>
<view>demo</view>
<view>demo</view>
<view>demo</view>
<view>demo</view>
<view>demo</view>
<view>demo</view>
<view>demo</view>
<view>demo</view>
<view>demo</view>
<view>demo</view>
<view>demo</view>
</scroll-view>
</view>
</template>
<script>
export default {
data() {
return {
triggered: true,
_freshing: false
}
},
onLoad() {
},
methods: {
onRefresh() {
console.log("=======================")
if (this._freshing) return;
this._freshing = true;
setTimeout(() => {
this.triggered = false;
this._freshing = false;
}, 3000)
},
onRestore() {
this.triggered = 'restore'; // 需要重置
console.log("onRestore");
},
onAbort() {
console.log("onAbort");
}
}
}
</script>
操作步骤:
- 同上述代码示例
预期结果:
onRefresh()应执行并能看到输出日志
实际结果:
onRefresh()未执行
bug描述:
scroll-view中的@refresherrefresh未触发,iOS和Android均已测试。3.2.6版本中测试正常
更多关于uni-app scroll-view中的@refresherrefresh(自定义下拉刷新)在最新3.2.9版本上未触发的实战教程也可以访问 https://www.itying.com/category-93-b0.html
顶一下
更多关于uni-app scroll-view中的@refresherrefresh(自定义下拉刷新)在最新3.2.9版本上未触发的实战教程也可以访问 https://www.itying.com/category-93-b0.html
再顶一下
顶顶顶
这个版本确实有些问题 ,尝试使用 3.2.10 alpha 是否正常
在uni-app 3.2.9版本中,scroll-view的[@refresherrefresh](/user/refresherrefresh)事件未触发的问题,可能是由于该版本对下拉刷新机制进行了调整或引入了兼容性问题。根据你的代码和描述,以下分析和解决方案可供参考:
-
检查
refresher-enabled属性:确保refresher-enabled设置为true(你的代码中已正确设置)。但注意,某些版本中可能需要显式使用:refresher-enabled="true"绑定,而非静态属性。尝试改为动态绑定::refresher-enabled="true" -
refresher-triggered初始值问题:在最新版本中,refresher-triggered的初始值可能影响事件触发。你代码中初始值为true,这可能导致刷新状态被误认为“已触发”,从而阻止后续下拉操作。建议将初始值改为false:data() { return { triggered: false, // 改为false _freshing: false } } -
事件绑定方式:确保事件监听正确。你的代码中使用了
[@refresherrefresh](/user/refresherrefresh),这是Vue的语法糖,通常有效。但可尝试改为标准事件监听方式作为测试:[@refresherrefresh](/user/refresherrefresh)="onRefresh" <!-- 保持原样 --> <!-- 或尝试 --> v-on:refresherrefresh="onRefresh"

