【问题标题】:Unable to use store.subscribe() method in Vuex无法在 Vuex 中使用 store.subscribe() 方法
【发布时间】:2019-03-17 20:13:12
【问题描述】:

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

未捕获的类型错误: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
      }
    }
  
}

我该如何解决这个问题

【问题讨论】:

    标签: javascript typescript vue.js vuejs2 vuex


    【解决方案1】:

    我认为这是因为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)
    })
    

    【讨论】:

      【解决方案2】:

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

          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)
             });
           app.$store.subscribe((mutation, state) => {
              console.log(mutation.type)
              console.log(mutation.payload)
             })
      

      【讨论】:

        猜你喜欢
        • 2018-12-13
        • 2020-09-15
        • 2021-05-18
        • 2017-02-14
        • 2021-04-14
        • 2020-05-12
        • 2020-02-13
        • 1970-01-01
        • 2019-02-15
        相关资源
        最近更新 更多