一.问题: 表单重置 未完全清空数据
原因:

(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
本文探讨了Vue中表单重置不彻底及表单验证出现警告的问题,提供了使用$nextTick和Object.assign进行数据重置的解决方案,并讨论了如何避免‘prop未挂载’的警告。

2538

被折叠的 条评论
为什么被折叠?



