我只是尝试使用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 } } } 

我该如何纠正这个问题

#1楼 票数:4 已采纳

我认为发生这种情况是因为在您调用store时, 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楼 票数:2

添加app.store...类的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)
       })

  ask by MGS translate from so

未解决问题?本站智能推荐:

1回复

使用向下传递的prop作为变量动态访问对象属性,在Vue2和Vuex上返回错误

我已经尝试了几个小时来解决这个问题,但我无法做到。 我已经检查了这两个问题,但它们没有帮助我: 使用变量动态访问对象属性 使用变量动态访问对象属性唯一可能是@chacham15 的回答说“小心这个:javascript 编译器会在这里出错,因为它们不会重命名字符串,但会重命名对象属性”。 如果是这
1回复

vuex未知操作类型:使用打字稿应用程序的VueJS中的RawHTML

尝试在组件上分派动作时,出现“ [vuex]未知动作类型:RawHTML”。 这些错误通常是由于未正确命名空间的模块引起的,但是我在这里没有使用模块。 商店/index.ts 主要 我的组件 提前致谢
1回复

Vuex:是否存在确定状态是否发生变化的“最佳实践”?

我和我的团队创建了一个Vuex模块,用于存储表单的用户输入内容。 如果表单包含未保存的更改,并且用户试图离开,那么我们会警告用户,以便他们有机会取消导航。 如果我们可以简单地检查内置的getter,那将是很好的。 也许是这样的: 我们已经讨论过深入观察状态并在每次发生突变时生成散列,但质疑这种方法可
1回复

Vuex与服务进行状态管理

使用Vuex与状态管理服务有什么区别(好处/缺点)。 我正在开发一个显示项目目录的应用程序。 这些项目是从API获取的。 目前,用户可以应用过滤器并对项目进行排序。 我正在使用一项服务来根据用户应用的过滤器来处理视图的更新。 这些项目在后端进行了过滤,因此每次触发过滤器时,更新方法
1回复

如何在插件中使用vuex商店?

在我的 Vue 插件中,我在install过程中将 Vuex 商店作为选项的一部分传递 main.ts(主项目):import store from "./store/";Vue.use(Camera, { store });new Vue({ router, store, ren
2回复

使用TypeScript的Vuex地图函数

我的状态(游戏命名空间)有一个如下所示的界面: 我正在尝试使用 mapState 在组件内映射“taskTypes”,如下所示: 我收到以下错误“'{ taskTypes: (state: GameState) => TaskType[]; }' 类型的参数不可分配给'string[]' 类型
1回复

使用Vue类组件、Vuex类的ESLint错误

我想使用vuex-class来绑定vuex和vue-class-component助手但它说error Parsing error: Using the export keyword between a decorator and a class is not allowed. Please use
1回复

Vue.use(Vuex)打字稿错误

我已经使用npm安装了vue(2.4.2)和vuex(2.3.1)。 当我尝试编译以下代码时,出现错误: Store.ts tsconfig.json 我已经看到了这个问题,但是没有太多帮助。 为什么会出现此错误,我该如何解决?