一.问题: 表单重置 未完全清空数据
原因:
(1). 使用$nextTick再执行赋值,初始化结束再赋值
this.$nextTick(()=>{
//赋值
this.editForm = {...row};
})
(2).主动将data修改成初始化的值
Object.assign(this.$data, this.$options.data())
this.$data 获取当前状态下的data
this.$options.data() 获取该组件初始状态下的data
2.如果有引入外部js的话
使用:Object.assign(this.$data, this.$options.data.call(this))
因为调用this.$options.data()后使得当前data中的this发生变化,不再指向当前的Vue实例
let obj1=this.$data;
let obj2=this.$options.data.call(this);
for(let attrName in obj1){
if(attrName!=='rules'){
obj1[attrName]=obj2[attrName];
}
}
如果在element表单的重置出现自动验证问题的话
解决:过滤掉rules的赋值
二.问题: 表单验证报警告’prop未挂载’问题
1.可能就是没在el-form-item上没加prop—加上就行了
2.是加上了prop,但就是没有调用规则验证方法 —
可能是在el-form-item上加了v-if,也就是在初始化时v-if为false,后面再改变为true,此时prop是没有加载上
解决: 把v-if改成v-show