1

これが状況です。私は でSPAに取り組んでいVue.jsます。私はVeeValidate自分のコンポーネントの 1 つで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);移動すると、次のようなエラーが表示されます。Component1Component2Vuetable

計算されたプロパティ「fields」はすでにプロパティとして定義されています

VeeValidateに着陸したときにすでにグローバルに登録されているためComponent1です。

Component2依存関係のない他のコンポーネントから移動するとVeeValidate、問題なく動作します。

だからここに私の質問があります、

他のコンポーネントに影響を与えないように、ローカルVeeValidate内の他のパッケージを登録するにはどうすればよいですか? Component1.vueオブジェクト内の他のコンポーネントを登録するのとよく似ていcomponents: {}ます。

4

1 に答える 1

1

Vee validate を使用すると、構成を通じてフィールドとエラー バッグの名前を変更できます。ここのドキュメントにあります

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

また、興味がある場合は、高度な構成セクションで、インスタンスをグローバルではなくコンポーネントに注入する方法について説明しています。

于 2018-04-09T08:15:36.853 に答える