Vue+Element-ui表單resetFields無法重置問題
問題背景
在開發(fā)中自己使用this.$refs[formName].resetFields()出現(xiàn)無法重置表單的的場景有兩種:
1、<Modal/ >組件內(nèi)表單填寫,在 modal 組件未掛載在 DOM 元素中,就無法獲取到 form 表單組件的實例,所以this.$refs[formName]獲取實例就會出現(xiàn) undefined 的情況。
2、比如編輯表格數(shù)據(jù),需要回顯表單數(shù)據(jù),我們一般的做法就是放表單的 rawValue 賦值就搞定,但是我們從新添加數(shù)據(jù)之前想重置表單就無效。
下面說說我遇到上面兩種無法重置表單問題的解決方案:
第一個無法解決重置表單解決方案
判斷不是undefined的情況下才會去調(diào)用 resetFields 方法:
if (this.$refs["form"] !== undefined) {
this.$refs["form"].resetFields();
}第二個無法解決重置表單解決方案
回顯填充表單數(shù)據(jù)邏輯寫在nextTick函數(shù)的callback中,nextTick原理大家可自行搜索就有,不多說。
Vue2.x
fillFormData(rawValue) {
? this.$nextTick(() => {
? ? for (let key in this.form) {
? ? ? if (rawValue[key]) {
? ? ? ? this.form[key] = rawValue[key];
? ? ? }
? ? }
? });
},Vue3.x
import { nextTick } from 'vue';
const fillFormData = () => {
?? ?nextTick(()=>{
?? ? ?// 數(shù)據(jù)回顯邏輯
?? ?})
}這樣,在添加新的數(shù)據(jù)之前,再調(diào)用一下重置表單resetFields()就可以了。
到此這篇關(guān)于Vue+Element-ui表單resetFields無法重置問題的文章就介紹到這了,更多相關(guān)Vue Element表單resetFields無法重置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Antd的Table組件嵌套Table以及選擇框聯(lián)動操作
這篇文章主要介紹了Antd的Table組件嵌套Table以及選擇框聯(lián)動操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
Vue使用pdfobject實現(xiàn)預(yù)覽pdf的示例詳解
PDFObject?是一個?JavaScript?庫用來在HTML中動態(tài)嵌入?PDF?文檔。這篇文章主要為大家詳細介紹了使用pdfobject實現(xiàn)預(yù)覽pdf的功能,需要的可以了解一下2023-03-03
vue的index.html中獲取環(huán)境變量和業(yè)務(wù)判斷圖文詳解
這篇文章主要給大家介紹了關(guān)于vue的index.html中獲取環(huán)境變量和業(yè)務(wù)判斷的相關(guān)資料,對vue來說index.html是一個總的入口文件,vue是單頁面應(yīng)用,掛在id為app的div下然后動態(tài)渲染路由模板,需要的朋友可以參考下2023-09-09
基于Vue3實現(xiàn)前端埋點上報插件并打包發(fā)布到npm的詳細過程
這篇文章主要介紹了基于Vue3實現(xiàn)一個前端埋點上報插件并打包發(fā)布到npm,本項目采用pnpm進行Monorepo環(huán)境搭建,因為未來這個項目可能會加入更多的工具包,需要的朋友可以參考下2022-10-10

