【问题标题】:How to use VeeValidate or any third party package locally inside vue component如何在 vue 组件中本地使用 VeeValidate 或任何第三方包
【发布时间】:2018-09-18 13:21:21
【问题描述】:

好的,情况就是这样,我正在使用Vue.js 进行 SPA。我在我的一个组件中使用VeeValidate,就像这样在Component1.vue 中说,

import Vue from 'vue';
import VeeValidate from 'vee-validate';

Vue.use(VeeValidate);

export default {
    //...
}

在另一个组件中说Component2.vue 我正在使用vuetable-2,我是这样注册的,

import Vuetable from 'vuetable-2/src/components/Vuetable';

export default {
    components: {
        Vuetable
    },

   //...
}

问题在于VeeValidateVuetable 在内部都依赖于同名的计算属性。当我像Vue.use(VeeValidate); 一样在全球范围内注册VeeValidate 时,如果我从Component1 导航到Component2Vuetable 会出现错误提示,

计算属性“fields”已经被定义为prop

因为当我登陆 Component1 时,VeeValidate 已经在全球注册了自己。

如果我从与VeeValidate 没有任何依赖关系的任何其他组件导航到Component2,那么它就可以正常工作。

这是我的问题,

如何在本地注册VeeValidateComponent1.vue 内的任何其他包,以免影响其他组件?就像在components: {} 对象内注册其他组件一样。

【问题讨论】:

    标签: javascript vue.js vue-router vue-tables-2 vee-validate


    【解决方案1】:

    Vee validate 允许您通过配置更改字段和错误包名称。它在docs here

    const config = { 
         errorBagName: 'errors', // change if property conflicts 
         fieldsBagName: 'fields',
    }
    

    如果有兴趣,advanced configuration 部分也解释了如何将实例注入组件而不是全局。

    【讨论】:

    • 是的,我正在寻找在组件内本地注入,好的,让我检查一下它是否有效
    猜你喜欢
    • 2016-01-21
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 2014-02-27
    • 2018-01-14
    • 2021-06-08
    • 1970-01-01
    • 2016-06-04
    相关资源
    最近更新 更多