首页 > 其他分享 >在el-dialog中使用el-form数据无法清空

在el-dialog中使用el-form数据无法清空

时间:2024-04-25 17:00:51浏览次数:16  
标签:el const form value 表单 item dialog

问题

日常开发中,常利用el-dialog + el-form去进行表格项的新增和修改,在开发过程中,发现先点击编辑,后点击新增,位于dialog中的form表单无法清空。

问题代码

const formInfo = ref<FormInfo>({
    // ...
});
const toAdd = () => {
  dialogType.value = "add";
  dialogVisible.value = true;
  nextTick(() => {
    formRef.value.resetFields(); // 此时无论resetFields写在nextTick中还是利用定时器等都不起作用
  });
};
const toEdit = (item: any) => {
  dialogType.value = "edit";
  dialogVisible.value = true;
  Object.assign(formInfo.value, item);
};

问题原因

在toEdit方法中,将dialogVisible的值设为true之后,el-dialog正处于渲染中,在Mounted()生命周期之前,就将表单值赋值了,此时表单Mounted之后,就认为赋值后的为表单的初始值,而不是const formInfo声明处为初始值,而resetFields方法是将表单重置为初始值,就无法清空第一次编辑的数据。

解决办法

const toEdit = (item: any) => {
  dialogType.value = "edit";
  dialogVisible.value = true;
  // 在编辑赋值时使用nextTick使表单Mounted之后再去执行赋值
  nextTick(() => {
    Object.assign(formInfo.value, item);
  });
};

 

标签:el,const,form,value,表单,item,dialog
From: https://www.cnblogs.com/nicoz/p/18158084

相关文章

  • el-table 合并单元格
    objectSpanMethod({row,column,rowIndex,columnIndex}){constlength=this.newlist[this.saveindex].data.newTable.length-this.newlist[this.saveindex].data.tag_list_all.length//新增:处理前两行前两列的合并if(rowIndex<......
  • Electron打包的时候路径出现问题!include: could not find: "C:\Users\xxxx\AppDat
    !include:couldnotopenfile:"C:\ztg\projects\electron-vite-vue-ts\node_modules\.pnpm\[email protected][email protected][email protected]_dmg-bui_lrspnoputfiosacwyigcypdbdi\node_modules\app-builder-lib\t......
  • 苹果开源高效语言模型 OpenELM;全球首个 AI 基因编辑器开源丨RTE 开发者日报 Vol.192
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......
  • Sentinel如何持久化数据到Nacos?
    默认情况下Sentinel只能接收到Nacos推送的消息,但不能将自己控制台修改的信息同步给Nacos,如下图所示:但是在生成环境下,我们为了更方便的操作,是需要将Sentinel控制台修改的规则也同步到Nacos的,所以在这种情况下我们就需要修改Sentinel的源码,让其可以实现和Nacos的双向......
  • 前端工程师-自动拉取iconfont的批处理文件-windows10版本-用到了powershell的解压功能
    直接上代码,有任何问题直接留言,我们一起讨论  @echooffSETdirName=替换成压缩包解压后希望叫的名字SETOldPattern=font_*_*rmdir/q/s"删除原来的iconfont文件夹,这里替换成原来的文件夹的地址"curl--output%这里的地址是你想把从iconfont上下载下来的安装包......
  • el-select @change事件获取整个对象
    <el-form-itemlabel="使用人"prop="useBy"><el-selectref="useByRef"v-model="form.useBy"filterableplaceholder="请输入员工名称"style="width:100%"no-match-text="请输入员工名称&qu......
  • guava-SmoothRateLimiter代码
     //定义为volatile变量privatevolatileObjectmutexDoNotUseDirectly;//已存储许可证数量doublestoredPermits;//最大许可证数量doublemaxPermits;//间隔时间doublestableIntervalMicros;//上一次获取许可证时间戳privatelong......
  • MySQL - [13] binlog、redolog、undolog、delaylog
    题记部分 binlog    redolog      undolog  3.1、什么是undo log事务是需要保证原子性的,也就是说,事务中的操作要么全部完成,要么什么也不做。但有如下情况,会造成事务执行不完。①事务执行过程中可能遇到各种错误,比如:代码bug出现异常。②......
  • Excel 表格一个单元格里有多个内容怎么分开,讲解最强操作和公式
    一个表格里单元格包含了多个内容,要怎么分开?一些表格使用者在录入数据时,为方便录入会将多个内容输入到一个单元格中,所以这是一个很普遍的数据处理场景。下面作者会讲解两个解题方法,第一个功能设置操作,第二个是专用函数公式,来快速执行单元格内的多个内容的拆分。......
  • Excel 怎么统计相同项的个数
    excel统计相同项个数的方法:首先选择需要进行统计结果的单元格,并输入统计函数;然后在括号内输入需要统计的范围,再输入需要统计的项;最后设置好参数,并按下回车键。本文操作环境:Windows7系统,MicrosoftOfficeExcel2010版本,DellG3电脑。excel统计相同项个数的方法:1、用excel将我们......