次の単純なコードは、いくつかのコンポーネントとルートインスタンスの両方がvuexオブジェクトからのバインディングではなくコンソールにエラーを記録するため、頭痛に悩まされています。私はここで何が失われる可能性がありますか?私のコードで子コンポーネントでVuexが動作しない
var state = {
\t counter: 0
};
var mutations = {};
var store = new Vuex.Store({state, mutations});
var someComponent = Vue.extend({
template: '<div>{{counter}}</div>',
//data: function(){return {counter: 0}},
vuex: {
getters: {
counter: getCounter
}
}
});
new Vue({
el: '#app',
components: {
\t 'some-component': someComponent
},
store: store,
vuex: {
\t getters: {
\t \t counter: getCounter
\t }
}
});
function getCounter(state) {
return state.counter;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>vue-bug</title>
</head>
<body>
<div id="app">
\t <span>{{counter}}</span>
\t <some-component></some-component>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.0-rc.1/vue.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vuex/2.0.0-rc.1/vuex.js"></script>
</body>
</html>
、私はVue.use(Vuex)を呼んでいるが、このフィドルに私は(それがVuexが既に登録されていることを言います)する必要はありません。また、データを含む行のコメントを外すと、コンポーネントが正しくレンダリングされることに注意してください。
ご協力いただきまして誠にありがとうございます。
「Vue 2.0」を使用している場合は、「Vuex 2.0」を使用してください。私はVue.js 2.0があなたが使っているVuexのバージョンと互換性があることを100%確信していません。 Vuex 2.0にアップグレードできますか? コンポーネントに 'created'フックを追加し、' console.log(this。$ store) 'を実行して、あなたの店があなたのコンポーネントに注入されているかどうか確認できますか? jsFiddleを提供すると、上記のコードを見てデバッグするのが簡単です。 –
@PrimozRome私は元の質問を大幅に編集して再現しやすくし、vuexのバージョンを更新しました。また、 'console.log(this。$ store)'はストアが注入されていることを伝えます。ありがとう! – Ozymas