javascript - 无法在 Vuex 中使用 store.subscribe() 方法

标签 javascript typescript vue.js vuejs2 vuex

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

Uncaught TypeError: WEBPACK_IMPORTED_MODULE_2__store.a.state.subscribe is not a function

这是我的代码:

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
      }
    }
  
}

我该如何解决这个问题

最佳答案

我认为发生这种情况是因为当您调用它时 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)
})

关于javascript - 无法在 Vuex 中使用 store.subscribe() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52782193/

相关文章:

javascript - jQuery 从 $el 获取 ID

javascript - Flash音频播放器的html元素

javascript - 如何使用Jodit uploader 和coldfusion上传图像?

javascript - 接口(interface)中的 TypeScript 可选函数

vue.js - 在 Vue 中 - this.$data.foo 与 this.foo 有什么区别?

javascript - 尝试用一种功能动态扩展不同的div

javascript - 队列异步功能并限制为 1 个并行执行

node.js - SystemJS Typescript 输入冲突

javascript - Vue 3 警告 "tags with side effects"正在破坏生产

javascript - Materialize css 触发器在 Vue js 中不起作用