elementUI的表單resetFields()方法無法清空
需要注意幾個問題:
- 我們需要為每個form-item加上prop屬性,要不然無法清空(大部分的問題就是出在這)
- resetFields()方法是重置表單,重置為初始值,而不是設置為空值
- 在resetFields()方法之前,如果修改了data里的表單默認值,那么重置以后就是你修改以后的值,而不是data里的值了
問題
1、頁面有個新增和編輯共用的彈出框,在頁面初始化后先點新增,后編輯,正常。
2、先編輯,后新增使用resetFields()表單數據竟然沒有清空。
原因
1、當我們先新增再編輯,初始值是空的,調用resetFields()方法自然正常。
2、當我們先編輯再新增,會對表單賦值,初始值就是我們賦的值,調用resetFields()方法,表單里還有之前賦的值,並不是我們希望得到的清空表單。
解決
在編輯時,彈出框我們先讓他初始化結束再賦值,使用$nextTick再執行賦值。
edit(row) { this.visible = true; this.$nextTick(()=>{ //賦值 this.editForm = {...row}; }) },