You need to enable JavaScript to run this app. 测试调用Getters与Mutations的Vuex Action 解决未知action类型报错
优惠活动
大模型
产品
解决方案
定价
更多

测试调用Getters与Mutations的Vuex Action 解决未知action类型报错

你收到的[vuex] unknown action type: toggleTaxOnLine报错原因非常明确:toggleTaxOnLine是你定义的mutation,不是action,而store.dispatch方法只能用来触发action,触发mutation需要用store.commit,你导出的actions对象里根本没有同名的action定义,所以Vuex找不到对应的action触发。


修复方案

1. 修正测试代码的调用逻辑

你已经在actions里封装了updateTaxOnLine组合逻辑,内部会先执行toggle的mutation再触发全量税额更新,直接把测试代码里的dispatch调用改成触发这个action即可:
把测试代码里的

await store.dispatch('toggleTaxOnLine', {lineId: 355});

替换为

await store.dispatch('updateTaxOnLine', {lineId: 355});

2. 修复其他隐藏的代码问题,避免后续报错

  • 你的getters中taxLinesBaseAmount依赖了getters.receiptLines,但你没有定义这个getter,需要在getters中补充:
receiptLines: state => state.receipt.lines,
  • mutation都是同步执行的,action里写await commit(xxx)没有实际作用,可以去掉commit前的await关键字。
  • 你计算tax时用了toFixed(2),得到的是字符串类型,测试断言里的toEqual(6.74)是判断数字相等,会断言失败,可以把断言改成toEqual("6.74"),或者计算tax时转成数字:Number(tax)。

内容的提问来源于stack exchange,提问作者Daniel Butler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 05:54:09