Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【Vuex】コンポーネントに$storeが登録されません、、

解決したいこと

VueXの学習を行なってます
ゴールは、$store.state内のメッセージを呼び出すところです
ファイル群

packeage.json
  "dependencies": {
    "core-js": "^3.8.3",
    "vue": "^2.6.14",
    "vuex": "^4.0.2"
  },
main.js
import Vue from 'vue'
import App from './App.vue'
import store from './store'

Vue.config.productionTip = true

console.log("読み取ってる?",store)
new Vue({
  render: h => h(App),
  store
}).$mount('#app')

スクリーンショット 2023-02-08 16.55.21.png

App.vue
<template>
  <div id="app">
  </div>
</template>

<script>

export default {
  name: 'App',
  data:function(){
    return {
    }
  },
  mounted(){
    console.log("state",this)
    console.log("ここがエラーになる",this.$store)
  },
  components: {
  }
}
</script>

スクリーンショット 2023-02-08 16.58.04.png

$storeが読まれません

スクリーンショット 2023-02-08 21.43.14.png

store/index.js
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    count: 0
  },
});

export default store;

現在こんな感じです。

#考察
1.store/index.jsの中では、store.state.countは問題なく呼び出される
2.maind.js内でstoreインスタンスは問題なく読み込んでいる
3.App.vueコンポーネントは問題なく継承されている

コンポーネント内にstoreが適切に登録されていないか、$storeというグローバル変数そのものが間違っているか、、そんな気がします。

以上の状態で
$storeがグローバルで読み込む方法がわからなくて弱ってます

申し訳ありませんがご助言いただけたらと思います

0

2Answer

Vue2 を使用する場合は Vuex3 でないと動作しません。バージョンを指定してインストールしなおしてください。

1Like

Comments

  1. @gucho-n

    Questioner

    ありがとうございます。2日間永遠と迷い続けて、このままだと解決できそうにもありませんでした。おかげさまで表示されました。
  2. たまたま直近で似たような状況に遭遇したので読んですぐにピンと来ました。リファレンスでもそんなに大きく書いてない内容なので見落としてしまいますよね。

    2つ目に上げたリンクの通り npm install 時に dependency に関わる警告(Vuex4 と併用するはずの Vue3 が存在しない旨)が出ていた可能性がありますので、次回は注意深く読んでみるとよいかと思います。

    無事解決できてよかったです。

Comments

  1. @gucho-n

    Questioner

    memo
    1. $npm remove vuex
    2. $npm install --save vuex@3

Your answer might help someone💌