微信小程序删除滑块 SwiperCell 自动收起 Van weapp van-swipe-cell 滑块自动收起 点击页面也自动收起滑块

  1. 在当前页面整个 view 中 给页面绑定 点击事件bindtap="onSwipeCellPage"
  2. 给 van-swipe-cell 组件设置 id (for循环可以添加 id="swip-cell-{``{item.id}}"
  3. van-swipe-cell 组件 添加属性 当用户打开滑块时触发 bind:open="swiperCellOpen"
  4. van-swipe-cell 组件 添加属性 点击滑动单元格时触发的事件 bind:click="onSwipeCellClick"
  5. 需要对单元格实例数组进行遍历,遍历以后获取每一个实例,让每一个实例调用 close 方式即可

示例

  1. 新建文件夹 SwiperCell.js
javascript 复制代码
Page({
    data: {
        swipeCellQueue: [], //用来存储滑动单元格实例 
    },

    // 当用户打开滑块时触发
    swiperCellOpen(event) {
        // 获取单元格实例
        const instance = this.selectComponent(`#${event.target.id}`)
        // 将实例追加到数据中
        this.data.swipeCellQueue.push(instance)
    },
    // 给页面绑定 点击事件
    onSwipeCellPage() { this.onSwipeCellCommonClick() },
    // 点击滑动单元格时触发的事件
    onSwipeCellClick() { this.onSwipeCellCommonClick() },
    onSwipeCellCommonClick() {
        // 需要对单元格实例数组进行遍历,遍历以后获取每一个实例,让每一个实例调用 close 方式即可
        this.data.swipeCellQueue.forEach((instance) => {
            instance.close()
        })
        // 将滑动单元格数组重置为空
        this.data.swipeCellQueue = []
    }
})
  1. 然后在使用文件 wxml 中 最外层的 view 绑定 页面点击事件 bindtap="onSwipeCellPage"
  2. 给 swipe-cell 绑定一个 id <van-swipe-cell class="goods-swipe" right-width="{``{ 65 }}" id="swipe-cell-{``{item.id}}">
  3. 给 swipe-cell 绑定open和click事件 <van-swipe-cell class="goods-swipe" right-width="{``{ 65 }}" id="swipe-cell-{``{item.id}}" bind:open="swiperCellOpen" bind:click="onSwipeCellClick">
  4. 在 使用文件 js 中 引入 Behaviors
  5. 然后在 onHide 方法 引入 在页面隐藏的时候,需要让删除滑块自动弹回
javascript 复制代码
import { ComponentWithStore } from 'mobx-miniprogram-bindings'
import { userStore } from '@/stores/userStore'
import { reqDelCartGoods } from "@/api/cart"

import { swipeCellBehavior } from "@/behaviors/swiperCell"
const computedBehavior = require("miniprogram-computed").behavior
ComponentWithStore({
    behaviors: [ swipeCellBehavior],
    storeBindings: {
        store: userStore,
        fields: ['token']
    },
    data: {
        cartList: []
    },
    methods: {
        //  如果使用 Compoent 方法来构建页面
        // 生命周期钩子函数 需要在 methods 中才可以
        // 删除商品
        async delCartGoods(evnet) {
        	// 要删除的id
            let { id } = evnet.currentTarget.dataset
            // 自己封装的 modal方法
            const isOk = await wx.modal({
                title: '提示',
                content: "您确定要删除吗?"
            })

            if (!isOk) {
                return
            }
            const res = await reqDelCartGoods(id)
            if (res.code === 200) {
                ....
            }

        },
        onHide() {
            this.onSwipeCellCommonClick()
        }

    }
})
相关推荐
2501_9160074715 小时前
iOS开发中抓取HTTPS请求的完整解决方法与步骤详解
android·网络协议·ios·小程序·https·uni-app·iphone
jay神16 小时前
基于微信小程序课外创新实践学分认定系统
java·spring boot·小程序·vue·毕业设计
AI行业学习19 小时前
Notepad++ 下载+安装+插件集合 完整教程(Windows,安全无捆绑)
windows·notepad++
00后程序员张19 小时前
Windows 下怎么生成 AppStoreInfo.plist?不依赖 Xcode 的方法
ide·macos·ios·小程序·uni-app·iphone·xcode
微擎应用21 小时前
社交电商小程序管理系统
小程序
silvia_Anne21 小时前
微信小程序首页设置
微信小程序·小程序
安妮的小熊呢1 天前
CRMEB标准版v6.0: 商城DIY装修新升级,PS级自由设计!
运维·javascript·平面·信息可视化·小程序·开源软件
小离a_a1 天前
uniapp小程序封装圆环显示比例数据
android·小程序·uni-app
万岳软件开发小城1 天前
外卖系统源码如何选择?校园外卖APP+小程序平台搭建指南
小程序·同城外卖系统源码·校园外卖小程序·外卖app开发·外卖软件开发·外卖平台搭建
程序鉴定师1 天前
西安小程序制作的可靠选择与发展前景
大数据·小程序