无法在Vuex

时间:2018-10-12 14:58:56

标签: javascript typescript vue.js vuejs2 vuex

我只是试图在store.subscribe()中使用Vuex方法。我不断收到以下错误,似乎表明没有store.subscribe方法,这与文档中的内容相反:

  

未捕获的TypeError: WEBPACK_IMPORTED_MODULE_2__store 。a.state.subscribe不是函数

这是我的代码:

app.js文件,在其中初始化所有内容,注册组件等:

import Vuex from 'vuex';
import router from './routes';
import store from './store';

window.Vue = require('vue');

const app = new Vue({
    el: '#app',
    router,
    store: new Vuex.Store(store)
});
store.subscribe((mutation, state) => {
  console.log(mutation.type)
  console.log(mutation.payload)
})

我的store.js文件,用作我的集中Vuex存储。到目前为止,它一直运行良好:

import router from './routes';
export default {
    state: {
      sample: {
        
      }
    },  
    mutations: {
      sample(state){
        
      }
        
    },

    getters: {
      sample(state){
        return state.sample
      }
    }
  
}

我该如何纠正这个问题

2 个答案:

答案 0 :(得分:3)

我认为这是因为store仍然只是一个常规对象,而不是Vuex的实例。 您可以尝试以下方法吗?

import Vuex from 'vuex';
import router from './routes';
import store from './store';

window.Vue = require('vue');
const myStore = new Vuex.Store(store)
const app = new Vue({
    el: '#app',
    router,
    store: myStore
});
myStore.subscribe((mutation, state) => {
  console.log(mutation.type)
  console.log(mutation.payload)
})

答案 1 :(得分:1)

添加map之类的app对象,因为您的app.store...在该级别不被视为Vuex存储实例。

store