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

5 回复

顶一下

更多关于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)事件未触发的问题,可能是由于该版本对下拉刷新机制进行了调整或引入了兼容性问题。根据你的代码和描述,以下分析和解决方案可供参考:

  1. 检查refresher-enabled属性:确保refresher-enabled设置为true(你的代码中已正确设置)。但注意,某些版本中可能需要显式使用:refresher-enabled="true"绑定,而非静态属性。尝试改为动态绑定:

    :refresher-enabled="true"
    
  2. refresher-triggered初始值问题:在最新版本中,refresher-triggered的初始值可能影响事件触发。你代码中初始值为true,这可能导致刷新状态被误认为“已触发”,从而阻止后续下拉操作。建议将初始值改为false

    data() {
      return {
        triggered: false,  // 改为false
        _freshing: false
      }
    }
    
  3. 事件绑定方式:确保事件监听正确。你的代码中使用了[@refresherrefresh](/user/refresherrefresh),这是Vue的语法糖,通常有效。但可尝试改为标准事件监听方式作为测试:

    [@refresherrefresh](/user/refresherrefresh)="onRefresh"  <!-- 保持原样 -->
    <!-- 或尝试 -->
    v-on:refresherrefresh="onRefresh"
回到顶部