【问题标题】:vuex base state is shared between modulesvuex 基本状态在模块之间共享
【发布时间】:2019-08-10 18:05:05
【问题描述】:

我在 nuxt 商店中使用多个 vuex 模块,我想在多个模块中使用相同的基本状态,如下所示:

// ~/utils/Sharedstore.js
export default {
  state: {
    byId: {},
    allIds: [],
  }
},

// ~store/entities/myEntity.js
import SharedStore from '~/utils/SharedStore';

export const state = () => ({ ...SharedStore.state });

但它不起作用,每当我改变一个状态时,所有模块的状态都会改变。

当我为我的所有模块执行此操作时:

// ~store/entities/myEntity.js
export const state = () => ({
  byId: {},
  allIds: [],
});

问题是我想将重复的基本状态放在一个地方(SharedStore.state)。为什么导入时无法正常工作,我该如何解决?

【问题讨论】:

    标签: vue.js vuex nuxt.js


    【解决方案1】:

    我找到了解决办法:

    export const state = () => JSON.parse(JSON.stringify(ModelStore.state));

    需要使用 JSON.parse(JSON.stringify(obj)) 对对象进行深度克隆,而不是传播。

    我猜byId和allIds的内容在传播的时候还是会被引用使用?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-17
      • 2021-06-22
      • 2021-05-15
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多