vue重置data数据及element表单的重置出现自动验证问题

一.问题: 表单重置 未完全清空数据
原因:
在这里插入图片描述

(1). 使用$nextTick再执行赋值,初始化结束再赋值

this.$nextTick(()=>{
       //赋值
       this.editForm = {...row};
})

(2).主动将data修改成初始化的值

  1. 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

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值