5

Vue & Vuex 2 を使用してカウンターを作成しています。
を使用して store オブジェクトの count プロパティにアクセスしようとするとthis.$store.state.countCannot 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
    }
  },
}

ストアのインポートの何が問題なのか考えていますか?

4

1 に答える 1

6

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 インポートを削除することもできます

于 2016-11-18T13:40:02.460 に答える