从外部文件导入 Vuex 实例时无法访问 $store

Can't access $store when importing Vuex instance from an external file

我正在创建 counter using Vue & Vuex 2
尝试使用 this.$store.state.count 访问存储对象上的计数 属性 时,出现 Cannot read property 'state' of undefined 错误。

错误 没有 出现,当我在 main.js 中创建商店实例而不是导入它时,一切正常。

main.js

import Vue from 'vue'
import Vuex from 'Vuex'
import App from './App.vue'
import store from './store'

new Vue({
  el: '#app',
  store,
  render: h => h(App)
})

store.js

import Vue from 'Vue'
import Vuex from 'Vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    count: 1
  }
});

Counter.vue

export default {
  name: 'counter',
  template: `<span>{{ count }}</span>`,
  computed: {
    count () {
        return this.$store.state.count
    }
  },
}

知道商店导入有什么问题吗?

您导入 vue 的方式不同:

import Vue from 'Vue'

store.js

之内
import Vue from 'vue'

main.js

之内

更改您的 store.js 导入以匹配 main.js 以解决问题,即

import Vue from 'vue'
import Vuex from 'Vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    count: 1
  }
});

您还可以删除 main.js

中的 Vuex 导入