我只是试图在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
}
}
}
我该如何纠正这个问题
答案 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