微信小程序删除滑块 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()
        }

    }
})
相关推荐
九皇叔叔2 小时前
Windows用Notepad++编辑Shell脚本:一招解决Linux执行报错问题
linux·windows·notepad++
小小王app小程序开发4 小时前
潮玩盲盒抽赏小程序玩法拆解:不同视角下的增长逻辑分析
小程序
星光一影4 小时前
Java版旅游系统/文旅系统/旅游助手/旅游攻略/公众号/小程序/app全套源码
java·小程序·开源软件·旅游·源代码管理
小小王app小程序开发4 小时前
盲盒小程序爬塔玩法深度细分:非技术视角下的运营细节拆解
小程序
游戏开发爱好者85 小时前
苹果iOS26系统升级:液态玻璃与智能功能全解析
macos·ios·小程序·uni-app·objective-c·cocoa·iphone
流***陌7 小时前
宠物寄养美容小程序前端功能解析:贴心照料宠物的全流程支撑
小程序·宠物
小小王app小程序开发10 小时前
任务悬赏小程序深度细分分析:非技术视角下的运营逻辑拆解
大数据·小程序
2501_9159184111 小时前
iOS 26 App 性能测试|性能评测|iOS 26 性能对比:实战策略
android·macos·ios·小程序·uni-app·cocoa·iphone
腾马科技18 小时前
新版saas餐饮外卖小程序源码/微信/支付宝/抖音/扫码点餐/DIY装修/美团代付/全开源
微信小程序·小程序·点餐小程序
郑叔敲代码1 天前
帝国cms 微信小程序的登录逻辑
微信小程序·小程序·notepad++