mingyigg
mingyigg
  • 发布:2022-10-01 15:48
  • 更新:2022-10-12 14:48
  • 阅读:339

【报Bug】uni-swipe-action 的 closeAll() 方法调用报错,无法关闭全部滑动操作栏

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 12.6

HBuilderX类型: 正式

HBuilderX版本号: 3.6.4

手机系统: Android

手机系统版本号: Android 12

手机厂商: 小米

手机机型: Redmi Note9

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

            <swiper-item v-for="(group, groupIndex) in habitGroup" :key="group.title">  
                <scroll-view class="scroll" :scroll-y="true">  
                    <!-- 滑动操作 -->  
                    <uni-swipe-action :ref="`swipeAction_${groupIndex}`">  
                        <uni-swipe-action-item  
                            v-for="(model, index) in group.list"  
                            :key="model.name"  
                            :threshold="10"  
                            :right-options="options"  
                            class="card-body"  
                            @click="optHabit($event, model.name)"  
                            @change="touchstart(model.name)">  
                            <view class="bg">  
                                <view class="card"   
                                    :style="{'background-color': model.color }"   
                                    @click="viewHabit">  
                                    <image :src="model.icon" class="card-icon"></image>  
                                    <view class="card-info">  
                                        <text class="card-title">{{model.name}}</text>  
                                    </view>  
                                </view>  
                            </view>  
                        </uni-swipe-action-item>  
                    </uni-swipe-action>  

                    <!-- 保存按钮 -->  
                    <view class="light-btn bgLightBase" @click="addHabit">  
                        <text style="font-size: 36rpx;">添加</text>  
                    </view>  
                </scroll-view>  
            </swiper-item>  
        </swiper>```

操作步骤:

就在js中调用 this.$refs.swipeAction_0.closeAll() 报错说 is not a function

预期结果:

希望能够关闭全部的滑动操作栏

实际结果:

无法关闭,还报错

bug描述:

this.$refs.swipeAction_0.closeAll() 报错说 is not a function

但是我看 uni-swipe-action 的源码中不是定义了这个方法吗?

而且文档中也提到了这个方法,虽然中文档里更离谱,写的居然是 close-all 方法

2022-10-01 15:48 负责人:无 分享
已邀请:
q***@gmail.com

q***@gmail.com

也遇到了这个问题,发现this.$refs.swipeAction_0返回的是数组,this.$refs.swipeAction_0[0].closeAll()这样调用就可以了

  • mingyigg (作者)

    那我的问题跟你的应该不一样,你应该是循环创建了多个 swipeAction,每个的命名一样。我这里是 scroll-view 和 swipeAction 嵌套使用才会产生的bug

    2022-10-15 22:16

要回复问题请先登录注册