el-form动态增减数据的问题,编辑时候input输入不了

news/2025/1/1 22:08:58/

新增的时候可以展示,但是编辑在点+新增就没有效果
在这里插入图片描述
原因:改变了数组内的值,但是页面没有重新渲染

        <el-form-item label="信息:" required><div style="display: flex; align-items: flex-end"><div><el-form:model="form"ref="watchRef"inline:hide-required-asterisk="false"><divv-for="(item, index) in form.supervisionList":key="item.key"class="supervisionitem"><!--  :prop="'supervisionList.' + index + '.supervisionLinkman'" --><el-form-item:prop="'supervisionList.' + index + '.supervisionLinkman'":rules="{required: true,message: '请填写姓名',trigger: 'blur',}"><el-inputv-model="item.supervisionLinkman"style="width: 145px"placeholder="姓名"maxlength="10":disabled="!!id && !row.showOperation"></el-input></el-form-item><!-- prop="supervisionMobile" --><!-- {{ form.supervisionList[index].supervisionMobile }} --><!-- prop="supervisionMobile"  'supervisionList.' + index + '.supervisionMobile'--><el-form-item:prop="'supervisionList.' + index + '.supervisionMobile'":rules="supervisionMobileRules"><el-inputv-model="item.supervisionMobile"style="width: 247px"placeholder="联系电话":disabled="!!id && !row.showOperation"></el-input><spanclass="del add pointer"@click.prevent="delSupervision(item)"v-if="index > 0">-</span></el-form-item></div></el-form></div><divclass="add pointer"@click="addSupervision":style="!!id && !row.showOperation ? 'pointer-events:none;' : ''">+</div></div><!-- <el-form:model="form":rules="watchRules"ref="watchRef"inline:hide-required-asterisk="false"><el-form-item prop="supervisionLinkman"><el-inputv-model="form.supervisionLinkman"style="width: 145px"placeholder="姓名"maxlength="10":disabled="!!id && !row.showOperation"></el-input></el-form-item><el-form-item prop="supervisionMobile"><el-inputv-model="form.supervisionMobile"style="width: 247px"placeholder="联系电话":disabled="!!id && !row.showOperation"></el-input></el-form-item></el-form> --><!-- <div class="alignFlex"><el-inputv-model="form.frName"style="width:145px;margin-right:8px"placeholder="姓名"></el-input><el-inputv-model="form.frPhone"style="width:247px"placeholder="联系电话"></el-input></div> --></el-form-item>
    addSupervision() {this.form.supervisionList.push({supervisionLinkman: "",supervisionMobile: "",key: Date.now(),});this.$forceUpdate();},delSupervision(item) {console.log(item, "item");console.log(this.form.supervisionList, "this.form.supervisionList");var index = this.form.supervisionList.indexOf(item);if (index !== -1) {this.form.supervisionList.splice(index, 1);this.$forceUpdate();}},

this.$forceUpdate()强制刷新
在新增就可以展示出来
在这里插入图片描述

如果是在对象中添加属性修改属性this.$set(this.object,'age',21)
如果是对数组的操作:
1.数组splice方法
2.this.$forceUpdate()强制刷新
3.this.$set使用如下

      this.$set(this.form.supervisionList, this.form.supervisionList.length, {supervisionLinkman: "",supervisionMobile: "",key: Date.now(),});

但是我的好像只能用this.$forceUpdate()强制刷新,具体啥原因我也不太清楚

但是this.$forceUpdate()会导致校验失效

最后发现是在详情赋值时出问题了

详情接口
this.form = res.data;this.form.supervisionList = res.data.supervisionManList.map((v) => ({supervisionLinkman: v.userName,supervisionMobile: v.phone,}));

就会导致编辑时候input不能编辑,恶性循环网上查询都是强制刷新,导致问题一直没有解决
上来给input赋值会导致vue数据双向绑定失效
以后有动态增加的时候,需要先赋值给新的变量,在新的变量上处理,再赋值给this.form,不破坏数据双向绑定
el-form动态增加跟vue配合的一个坑【具体为啥不太清楚,只知道解决方法】

详情接口
let temp = res.data;this.form.supervisionList = res.data.supervisionManList.map((v) => ({supervisionLinkman: v.userName,supervisionMobile: v.phone,}));
this.form = temp

http://www.ppmy.cn/news/1172977.html

相关文章

UE4 TextRender显示中文方法

UE4 TextRender显示中文 1.内容浏览器右键,用户界面->字体。新建一个。 2.添加字体&#xff0c;右边栏&#xff0c;细节。字体缓存类型:离线。 3.高度参数就是字体大小&#xff0c;导入选项勾选”仅透明度”&#xff0c;字符里输入字库的字符。 4.资产&#xff0c;重新导…

微信小程序阻止返回事件

需求场景 当在一个表单页面 填写了很多数据,或者编辑页面数据发生变动之后,这时候返回上一个页面需要提醒用户是否返回的弹框 实现方法一(ios会存在一定的问题) 在onLoad生命周期里 注册 wx.enableAlertBeforeUnload({message: "您内容已更新,还没保存,确定要退出吗?&…

解决 webpack 4.X:autoprefixer 插件使用不起作用的两种解决方案

1、问题描述&#xff1a; 其一、存在的问题为&#xff1a; 加载 autoprefixer 插件的过程中&#xff0c;页面却显示并没有自动添加浏览器的厂商前缀; 其二、问题描述为&#xff1a; 在写 CSS3 这些新的特性时&#xff0c;存在着不同的浏览器解析这些新特性时&#xff0c;需…

Electron 学习

Electron基本简介 如果你可以建一个网站&#xff0c;你就可以建一个桌面应用程序。Eletron 是一个使用 JavaScript, HTML和 CSS等Web 技术创建原生程序的框架&#xff0c;它负责比较难搞的部分&#xff0c;你只需把精力放在你的应用的核心上即可。 Electron 可以让你使用纯 Jav…

Centos 7 配置阿里云yum源

查版本号的命令 [rootlocalhost yum.repos.d]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) https://www.cnblogs.com/lfxx/p/17287253.html 1 备份现有的yum源cd /etc/yum.repos.d/ mkdir bak mv *.repo /etc/yum.repos.d/bak 2 创建阿里云yum源 方式2&a…

面试题 02.03. 删除中间节点

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;面试题 02.03. 删除中间节点 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 将当前节点的值修改为下一个节点的值&#xff0c;然后删除下一个节点 。 解题代码&#xff1a; /*** Definit…

Kubernetes技术与架构-网络 2

Kubernetes集群支持IP地址以及DNS访问Pod或者Service。 Service域名解析 Service域名解析包括A/AAAA记录以及SRV记录 A/AAAA记录 域名&#xff1a;my-svc.my-namespace.svc.cluster-domain.example 该域名对应的service名称是my-svc、service的命名空间是my-namespace、servic…

初识Java 15-1 文件

目录 文件和目录路径 选择Path的片段 分析Path 添加或删除路径片段 目录 文件系统 监听Path 查找文件 读写文件 本笔记参考自&#xff1a; 《On Java 中文版》 更多详细内容请查看官方文档。 Java 7优化了Java的I/O编程&#xff0c;具体的表现就是java.nio.file。其中…