【问题标题】:How to fix "TypeError: plugin is undefined" error when using VeeValidate with Vue将 VeeValidate 与 Vue 结合使用时如何修复“TypeError:插件未定义”错误
【发布时间】:2020-01-03 14:53:39
【问题描述】:

当我添加时:

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,我质疑这是否是问题。

【问题讨论】:

  • ValidationProvider 是一个组件,您应该使用Vue.component 注册它。 Vue.component('ValidationProvider', ValidationProvider)
  • 那不就相当于在.vue文件中默认导出的components部分列出来了吗?
  • github 这是源代码。很明显ValidationProvider是一个由Vue.extend返回的构造函数,你可以用new创建一个实例或者用Vue.component注册一个全局组件

标签: vue.js vuejs2 vee-validate


【解决方案1】:

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

import * as VeeValidate from 'vee-validate';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-28
    • 2017-12-06
    • 2020-10-16
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 2019-07-11
    相关资源
    最近更新 更多