Vuejs2 &引用;错误:[vuex]操作应为带“的函数或对象”;“处理者”;功能但是;行动.默认值“;是{}";更新Vue&;Vuex

Vuejs2 &引用;错误:[vuex]操作应为带“的函数或对象”;“处理者”;功能但是;行动.默认值“;是{}";更新Vue&;Vuex,vuejs2,vuex,Vuejs2,Vuex,我对我的项目进行了以下npm包更新: vuex: 2.3.1 -> 3.0.0 vue: 2.4.2 -> 2.5.2 vue-router: 2.7.0 -> 3.0.1 (还有一些,但我不认为它们与这个问题相关) 现在,我在启动网页时出现以下错误: 错误:[vuex]操作应为带有“处理程序”的函数或对象 函数,但“actions.default”为{} 我不太清楚为什么,我阅读了Vuex变更日志,语法似乎没有真正改变,但由于某种原因,我的代码崩溃了 仔细检查这个问题后,我

我对我的项目进行了以下npm包更新:

vuex: 2.3.1 -> 3.0.0
vue: 2.4.2 -> 2.5.2
vue-router: 2.7.0 -> 3.0.1

(还有一些,但我不认为它们与这个问题相关)

现在,我在启动网页时出现以下错误:

错误:[vuex]操作应为带有“处理程序”的函数或对象 函数,但“actions.default”为{}

我不太清楚为什么,我阅读了Vuex变更日志,语法似乎没有真正改变,但由于某种原因,我的代码崩溃了

仔细检查这个问题后,我发现错误是由名为vuex.esm.js的文件中的一个失败断言生成的:

function assert (condition, msg) {
    if (!condition) { throw new Error(("[vuex] " + msg)) }
}
代码在更新包之前运行良好,这里可能缺少一些东西。我很乐意提供任何可能有助于更好地理解问题的代码

谢谢

编辑: 以下是导致错误的调用堆栈:
我在单元测试中也遇到了同样的错误。我只是在我的操作中添加了一个空的
处理程序
函数,然后它就开始工作了

const state = { auth: { authenticated: false } };
const actions = { auth: { handler: () => {}, logout: () => sinon.stub() } };
let store;
beforeEach(() => {
   store = new Vuex.Store({
     state,
     actions,
   });
});

很多细节都不见了。。。。您的程序的配置是什么?网页包样板?你是如何配置vuex的?是的!在我的action.js文件中添加一些随机操作为我修复了它!>但为什么这能解决问题。。。它只是帮助了我,但我不明白为什么。