在开发过程中新增/编辑/查看功能往往使用一个el-form,在新增完成时,执行 resetFields()方法(即:this.$refs[form].resetFields();),这样再次打开页面时,不会保留原来的数据,但是先执行编辑或者查看操作,执行resetFields()方法,再次打开新增时,会发现数据依然存在,感觉像是resetFields()方法没有起作用。
原因: resetFields() 是将表单项重置为初始值,而这个初始值是在 Vue mounted 时赋值上去的,如果在这之前对表单进行了赋值,则初始值会改变,那么后面调用 resetFields() 则不会生效(不会是定义时的空值)
方法1:将赋值操作定义在 this.$nextTick() 中(保证了初始值不被修改)文章来源:https://www.toymoban.com/news/detail-509675.html
//赋值操作
operate(data) {
this.$nextTick(() => {
this.form = Object.assign({}, data);
})
},
方法2:使用vue中 this.$options.data() 可以重置vue组件中的data数据文章来源地址https://www.toymoban.com/news/detail-509675.html
//清空操作
closure() {
this.$refs.form.resetFields();
this.form = this.$options.data().form;
},
到了这里,关于Element-UI form表单 resetFields() 重置表单无效问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!