好的,情况是这样,我正在使用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内部都依赖于具有相同名称的计算属性。当我像VeeValidate一样全局注册Vue.use(VeeValidate);时,如果我从Component1导航到Component2,则Vuetable会显示一条错误消息,


  计算的属性“字段”已定义为prop


因为当我进入VeeValidate时,Component1已经在全球进行了注册。

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

所以这是我的问题

如何在VeeValidate中本地注册Component1.vue或任何其他软件包,以免影响其他组件?非常类似于在components: {}对象中注册其他组件。

最佳答案

通过Vee validate,您可以通过配置更改字段和错误袋的名称。在docs here中。

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


同样,如果有兴趣的话,advanced configuration部分介绍了如何将实例注入组件而不是全局实例。

09-11 18:27