好的,情况是这样,我正在使用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
},
//...
}
问题是
VeeValidate
和Vuetable
内部都依赖于具有相同名称的计算属性。当我像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部分介绍了如何将实例注入组件而不是全局实例。