elementui中table和dialog中数据回显和校验清空的问题

 父组件table,子组件dialog,为了保证dialog中数据变化,不影响父组件的显示,(为什么会有影响,主要赋值的时候,直接使用“=”的话,对象的引用地址是一样的,所以当dialog变化时,尽快没有保存,但还是会影响table中数据的显示)需要在父组件中,给子组件的传的值进行转换

this.data= JSON.parse(JSON.stringify(row));

子组件中也需要使用watch进行监听,重新赋值

watch: {
        data(val, oldVal){
            this.form = val
        },
    }

关于检验清空的问题出现的原因是:我们在每次新增数据的时候,尽管数据可能都是必填的,但是我们一打开弹窗的时候,还是希望没有检验的,当我们change的时候,再进行数据的检验。而由于我们大部分的时候,编辑的弹窗和新增的弹窗都是同一个,这导致我们在操作完编辑弹窗,在点击新增弹窗的时候,发现数据都进行了检验,其实这个时候是不需要的。

对于这个问题,我的处理方法是,每次关闭弹窗的时候,清空弹窗中的数据,没有打开弹窗的时候,清空校验规则

// 父组件   操作弹窗的时候,清空检验规则
this.$refs.child.clearValidate();
//子组件   每次关闭的时候,数据清空
//清空校验的方法
clearValidate() {
            if(this.$refs.form) {
                this.$refs.form.clearValidate();
            }
},
//清空数据
this.form = {}

 

posted @ 2021-07-03 18:35  #小小佳  阅读(1327)  评论(0编辑  收藏  举报