浅谈vue中resetFields()使用注意事项
this.$refs.frmAdd.resetFields();这句在使用中有些时候不会有啥问题,但有时候就会出问题,而且特别难缠,我原来这么使用就没问题啊,怎么这里就会有问题,查找各种资料总结得出:
第一种情况:放在弹框刚准备弹出的时候
第二种情况:放在弹框关闭方法@close中
发现上次报红框的地方仍然在,并未重置
最终解决方案:
this.KaTeXparseerror:Expected'}',got'EOF'atendofinput:…this.refs.frmAdd.resetFields();});
可以放在准备开始弹出弹框时的方法中
补充知识:vue-element-ui中formresetFields并没有清空表单
问题背景
vue-element-ui中form中有个清空表单的方法,即假如给表单一个ref='form',则清空表单的方法为this.$refs['form'].resetFields()
可当我在dialog组件中用这个方法的时候,这就出现问题了,居然清空不了~~~~~
问题所在
问题的本质是因为你编辑时,第一次打开dialog的时候给表单绑定的form赋值了,这时候这个form的初始值就变成了你所赋值的值,所以resetFields的时候,会将form对应的每个值重置到初始值,这时候的初始值就是你编辑时赋值的那个值,而不是在data里声明的初始值,
如表单绑定的值为:
form:{ age:0, name:'' }
但在你打开dialog编辑的时候,你又对它进行赋值,如
this.form={ age:23, name:"lala" }
这个时候form表单会默认这个新赋的值为初始值
解决
解决方式是,等dialog已经初始化之后再给form赋值,也就是
this.$nextTick(()=>{//这里开始赋值this.form.xxx=xxx;})
以上这篇浅谈vue中resetFields()使用注意事项就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。