在Vue中使用VeeValidate时如何解决“ TypeError:插件未定义”错误

时间:2019-08-30 10:42:57

标签: vue.js vuejs2 vee-validate

当我添加时:

Vue.use(VeeValidate);

我的Vue页面显示空白,并显示控制台错误:

TypeError: plugin is undefined

我发现了以下相同错误:

Vue plugin vee-validate not installing properly

但是我在.vue文档中的任何地方都没有使用=>语法。

vee-validate 3.0.3,Vue 2.6.10

完整的main.js文件:

import Vue from 'vue'
import VeeValidate from 'vee-validate';
import App from './App.vue'

Vue.config.productionTip = false
Vue.use(VeeValidate);

new Vue({
  render: h => h(App),
}).$mount('#app')

在我的App.vue文件中,我确实包括ValidationProvider作为组件:

<script>
import CriteriaDataModel from './data-model/criteria-data-model.js';
import UserDataModel from './data-model/user-data-model.js';
import { ValidationProvider } from 'vee-validate';

export default {
  name: 'app',
  data: function() {
    return {
      criteriaModel: CriteriaDataModel,
      completeMessage: null,
      form: {
        user: UserDataModel
      }
    };
  },
  components: {
    ValidationProvider
  }
};
</script>

我还尝试将Vue初始化更改为此,但没有帮助:

new Vue({
  render: function (h) { return h(App) },
}).$mount('#app')

我观察到VeeValidate在node_module中有很多使用'=>'语法(在另一个堆栈溢出中被引用为问题),但是由于意图是将其用于Vue,因此我怀疑这是否是问题。

1 个答案:

答案 0 :(得分:3)

我知道了。 vee-validate的默认导出似乎为空。我将导入更改为:

import * as VeeValidate from 'vee-validate';