Typescript in vue - Property 'validate' does not exist on type 'Vue | Element | Vue[] | Element[]'.

后端 未结 5 1780
感动是毒
感动是毒 2020-12-23 17:38

I created v-form like this


  ...
  

        
5条回答
  •  不知归路
    2020-12-23 18:10

    None of the answers did it. I was trying to get the validate then promise to work on a form.

    As per comment

    if you are building your vue component in typescript using

    export default Vue.extend({})
    

    then do

    import { ValidationObserver, ValidationProvider, extend } from "vee-validate";
    import { required } from "vee-validate/dist/rules";
    import Vue, { VueConstructor } from "vue";
    export default (Vue as VueConstructor<
      Vue & {
        $refs: {
          form: InstanceType;
        };
      }
    >).extend({
      methods: {
        saveEntity() {
          if (this.loading) return;
          console.log(this.entity);
          this.$refs.form.validate().then(success => {
            if (!success) {
              console.log("not valid");
              return;
            }
            console.log("valid");
          });
        }
      }
    })
    

    This validates the ValidationObserver ref="form" just fine.

提交回复
热议问题