zoukankan      html  css  js  c++  java
  • Element form表单方法resetFields无效

    之前遇到resetFields无效时都是自己手动用this.ruleForm = Object.assign({}, this.ruleForm, this.$options.data().ruleForm) 这种方式来清数据,用了这么久的form表单,resetFields真的是有时候生效有时候又不生效的,于是看了下Element源码,终于发现了其中的奥秘
    源码的form-item在mounted的时候是这么写的

    mounted() {
          if (this.prop) {
            this.dispatch('ElForm', 'el.form.addField', [this]);
    
            let initialValue = this.fieldValue;
            if (Array.isArray(initialValue)) {
              initialValue = [].concat(initialValue);
            }
            Object.defineProperty(this, 'initialValue', {
              value: initialValue
            });
    
            this.addValidateEvents();
          }
        },
    

    可以看到整个mounted操作都是基于你定义了prop才可以的,之后就是定义一个initialValue初始值,使用Object.defineProperty来定义默认是不可修改的,加writable属性值才能修改,并且放到this下,然后执行resetFields时把值变成初始值,所以以后需要清空表单,又不想手动清空的那么prop是必须要定义了

  • 相关阅读:
    php AppStore内购付款验证
    NodeJS
    Electron 的中文乱码问题
    Flexbox 弹性盒子布局的使用
    springboot整合quartz
    第4章:逆向分析技术--64位软件逆向技术
    第51章:静态反调试技术——API查询
    第51章:静态反调试技术
    第48章:SEH
    第47章:PEB
  • 原文地址:https://www.cnblogs.com/wzcsqaws/p/11493162.html
Copyright © 2011-2022 走看看