【问题标题】:All of my getters and mutations stopped working after implementing Vuex modules实现 Vuex 模块后,我所有的 getter 和 mutation 都停止工作
【发布时间】:2018-07-25 12:25:09
【问题描述】:

我目前正在实现 Vuex,并决定实现模块。

在这样做之前,一切正常,Vuex 管理状态没有问题。

在我阅读过的所有教程和观看过的视频中,人们只是简单地实现了模块,他们的应用程序总是可以立即运行,无需任何额外配置。

然而,在我的应用程序中,所有调用的突变现在都抛出一个错误,他们无法从 undefined 读取。

这是我所拥有的配置示例:https://codesandbox.io/s/4zro5wzjz0

更新:Bas van Dijk 的回答非常有价值,但问题实际上有所不同 - 在代码和框中我不允许上传整个应用程序,因此,我无法关联它适当地。但是为了让这篇文章有一些价值,我将解释一下基本上发生了什么。

我试图在模块之​​间进行交互而不将它们导入到要使用的位置,因此我的一个模块试图操纵另一个模块的值,但实际上它并不存在。

这发生了,因为我不得不分离最初的 Vuex 对象,它本身就是一个大对象。对于阅读这篇文章的任何人来说,一个很好的结论是 - 始终从规模开始,扩展已经分离的配置比拥有一个必须手动分离的单一数据和平容易得多。

【问题讨论】:

    标签: javascript vue.js vuex


    【解决方案1】:

    您没有在 main.js 中导入您的商店。因此它是未定义的。

    import store from "./store";
    
    new Vue({
      store,
      el: "#app",
      components: { App },
      template: "<App/>"
    });
    

    您声明也错过了stakeControls 对象

    const state = {
      stakeControls: {
        enabled: true
      },
      stake: {
        value: 10
      }
    };
    

    我还将您的商店导出更改为

    export default new Vuex.Store({
      modules: {
        Stake
      }
    });
    

    https://codesandbox.io/s/4zro5wzjz0

    【讨论】:

    • 抱歉,现在一切就绪,您可以重新创建问题
    猜你喜欢
    • 2021-09-15
    • 2020-02-20
    • 2019-08-21
    • 2012-08-30
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多