Vuex报错:prods模块getters.products应为函数却为数组,求排查
问题分析与解决
核心原因
报错信息已经明确指出:你的Vuex模块prods中的getters.products被定义成了数组[],但Vuex要求所有getter必须是函数,这是直接触发错误的原因。
排查与修复步骤
检查
prods模块的getters定义
找到你的prods模块文件(可能是单独的prods.js,或是store.js里的模块配置),确认getters部分的写法。错误写法类似:// 错误示例 const getters = { products: [] // 这里写成了数组,不符合Vuex要求 }正确写法应该是返回状态数据的函数:
// 正确示例 const getters = { products: state => state.products // 返回state中的products数据 }检查模块注册是否正确
确认在store.js中注册prods模块时,没有把getters的配置项写错位置,比如误将getters内容放到state或mutations里,或是注册时覆盖了正确的getters定义。排查是否有代码意外修改getters
检查项目中是否存在动态修改store配置的逻辑,意外将prods模块的productsgetter改成了数组类型。
额外提示
Vuex的getters本质是基于state的计算属性,每个getter接收state作为第一个参数,也可接收其他getters作为第二个参数,必须返回一个值(或函数,用于带参数的getter),绝对不能是数组、对象等非函数类型。
内容的提问来源于stack exchange,提问作者maxloo
相关产品推荐
相关产品推荐

