浏览器报[vuex] unknown action type: findAllCustomers错误

一、前言

气哭!花了两个小时终于找到问题了!!!
一开始看到报错
[vuex] unknown action type: findAllCustomers
全部是这样的
在这里插入图片描述
咋一看以为是语法问题,或者是粗心小问题,然后去找,找了半天,越看代码越觉得没问题,各种试,试到怀疑人生,百度,谷歌,找了半天也没找到我想要的答案,最后去看文档。才发现是自己太年轻了!!!哈哈哈哈,

二、正文

错误原因

没有在数组前面传参,像这样

methods: {
         	//映射,将action中得到动作映射为vue中的方法
            ...mapActions(["findAllCustomers","deleteCustomerById","saveOrUpdateCustomer"]),
            ...mapMutations(["showMo","closeMo"]),
            
        }

之所以这样用,是因为我看了官方文档,没有注意在数组参数前面还能再传一个参数
在这里插入图片描述

解决办法

所以最后我将代码改成这样,就可以啦

methods: {
         	//映射,将action中得到动作映射为vue中的方法
            ...mapActions("customer",["findAllCustomers","deleteCustomerById","saveOrUpdateCustomer"]),
            ...mapMutations("customer",["showMo","closeMo"]),
            
        }
另附官方文档vuex

这里的知识点是涉及到命名空间的用法。
默认情况下,模块内部的 action、mutation 和 getter 是注册在全局命名空间的——这样使得多个模块能够对同一 mutation 或 action 作出响应。

如果希望你的模块具有更高的封装度和复用性,你可以通过添加 namespaced: true 的方式使其成为带命名空间的模块。当模块被注册后,它的所有 getter、action 及 mutation 都会自动根据模块注册的路径调整命名。


  • 而我的错误是因为添加了namespaced: true 之后,却没有将模块的空间名称(这里的’customer’就是是我自定义模块的名称)字符串作为第一个参数传递给上述函数,这样所有绑定都会自动将该模块作为上下文。
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页