【问题标题】:Uncaught Error: [vuex] getters should be function but "getters.default" is {}未捕获的错误:[vuex] getter 应该是函数,但“getters.default”是 {}
【发布时间】:2018-12-09 08:19:44
【问题描述】:

我最近使用 NPM 构建了用于生产的 VUE 项目,但是在控制台中我收到以下错误。有谁知道为什么 vuex 抱怨? npm 3.10,node.js 8.11,

Uncaught Error: [vuex] getters should be function but "getters.default" is {}.
at assert (vuex.esm.js:97)
at vuex.esm.js:271
at vuex.esm.js:85
at Array.forEach (<anonymous>)
at forEachValue (vuex.esm.js:85)
at vuex.esm.js:270
at Array.forEach (<anonymous>)
at assertRawModule (vuex.esm.js:265)
at ModuleCollection.register (vuex.esm.js:191)
at new ModuleCollection (vuex.esm.js:165)

谢谢 托纳修

【问题讨论】:

  • 遇到了同样的问题。它与限制模式有关,但仍然无法找出是什么。 ps:在我的情况下从未使用过“getters.default”。

标签: javascript npm vue.js vuex


【解决方案1】:

我假设你在 vuex 的 getter 中有一个函数(getter),你正试图使用​​类似的东西来调用它

store.getters.default()

这样做是错误的,你会得到一些类似的错误日志。

所以正确的做法是在 vue 组件的计算属性中使用 vuex 的 mapGetters。在代码中看起来像这样。

import { mapGetters } from 'vuex'
...
...
  computed:{
            ...mapGetters(['default'])
        },
...
...

然后尝试使用 this(vm instance) 调用默认 getter

this.default()

这就是它现在应该工作的全部。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2018-02-14
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-08
    • 2023-03-26
    • 2021-05-25
    • 1970-01-01
    • 2021-07-31
    相关资源
    最近更新 更多