当前位置: 首页 > news >正文

uni-app uni-swipe-action 滑动操作状态恢复

按照uni-app官方文档的写法 当前同一条滑动确认之后 页面列表刷新 但是滑动的状态还在 入下图所示:

我们需要在滑动确认之后 页面刷新 滑动状态恢复 那么我们就来写一下这部分的逻辑:

首先,配置一下:show="isOpened[item.id]" @change="change(index)"

注意:isOpened一定要定位到你当前点击的内容,我这里是用id区分的, 不然会出现所有列表都同步滑开或者关闭

<view class="uni-swipe-box" v-for=" (item,index) in userList" :key="index"><uni-swipe-action-item :threshold="0" :show="isOpened[item.id]" @change="change(index)":auto-close='true' :right-options="options2" @click="bindClick($event,item)"><view class="content-box"><view class="user-name">姓名:<span class="span">{{item.userName}}</span></view><view class="user-name">分组:<span class="span">{{item.groupName}}</span></view></view></uni-swipe-action-item></view>
data() {return {	isOpened: {},tempOpened: null,  // 临时状态}
},mounted() {// 初始化 userList 中每个item的 isOpened 状态this.userList.forEach(item => {this.$set(this.isOpened, item.id, false);});},
methods: {change(index) {// 使用tempOpened记录当前滑动状态,而不是直接改变isOpenedthis.tempOpened = !this.isOpened[this.userList[index].id];},bindClick(e, item) {const that = thisconsole.log(e);console.log('item', item);const id = item.idif (e.content.text === '通过') {uni.showModal({title: '提交确认',content: `确认审核通过?`,success: (res) => {if (res.confirm) {that.isPass = truethis.isOpened[item.id] = this.tempOpened; that.tempOpened = null; // 清理临时状态that.makeRequst(id) // 调用后台接口} else if (res.cancel) {that.isPass = falsethat.isOpened[item.id] = that.tempOpened;that.tempOpened = null; // 清理临时状态console.log('用户取消操作');}}});} 
}

这样就可以实现及时恢复滑动状态 

官方文档uni-app官网

相关文章:

  • 智能合约中外部调用漏洞
  • 使用 Java 操作 Redis 数据类型的详解指南
  • Python怎么调用JAR包:揭秘跨语言交互的奥秘
  • QT4-QT5升级(3)GBK-UTF-8-乱码“常量中有换行符”
  • VCAST创建单元测试工程
  • 【Java】解决Java报错:NumberFormatException
  • [qt] qt程序打包以及docker镜像打包
  • hw meta10 adb back up DCIM
  • 2_1 Linux基础操作
  • MySQL数据库的基础:逻辑集合数据库与表的基础操作
  • SpringCloud 网关配置websocket
  • 【Bazel入门与精通】 rules之属性
  • wooyun_2015_110216-Elasticsearch-vulfocus
  • 算法:读取redis中指令查询的键
  • Ffmpeg安装和简单使用
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 2018一半小结一波
  • axios 和 cookie 的那些事
  • C# 免费离线人脸识别 2.0 Demo
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Java 最常见的 200+ 面试题:面试必备
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Js基础知识(一) - 变量
  • KMP算法及优化
  • Koa2 之文件上传下载
  • Laravel 中的一个后期静态绑定
  • MYSQL 的 IF 函数
  • npx命令介绍
  • spring学习第二天
  • v-if和v-for连用出现的问题
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 简单实现一个textarea自适应高度
  • 聊聊redis的数据结构的应用
  • 前端
  • 如何选择开源的机器学习框架?
  • 探索 JS 中的模块化
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • RDS-Mysql 物理备份恢复到本地数据库上
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • #{}和${}的区别?
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (done) 两个矩阵 “相似” 是什么意思?
  • (undone) MIT6.824 Lecture1 笔记
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (九)One-Wire总线-DS18B20
  • (论文阅读11/100)Fast R-CNN
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • .CSS-hover 的解释
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET 材料检测系统崩溃分析