element-ui的表单重置方法resetFields()的坑
坑一:官方写法,api也没有说明
1 resetForm(formName) { 2 this.$refs[formName].resetFields(); 3 }
坑二:看这个写法知道:this.$refs 这个是必须dom渲染完成后。且表单需要有ref,formName的名字要一致
解决方法:
1 this.$nextTick(() => { 2 this.$refs[formName].resetFields() 3 })
坑三: 需要完整 el-form及 form-item 组件中 且 配置 prop,不配置的执行此方法,该输入框值不会重置
解决方法:
1.要不你每个都加prop。
2.我的表单太多,每个都加得累死,还得维护。所以,
执行此方法前都加了
this[formName] = {};
最终
1 resetForm(formName) { 2 this[formName] = {}; 3 this.$nextTick(() => { 4 this.$refs[formName].resetFields() 5 }); 6 }