首页 > 解决方案 > 在 Vuex 中深度克隆/取消绑定对象的正确方法是什么

问题描述

我不断收到“[vuex] 不要在突变处理程序之外改变 vuex 存储状态”。我的应用程序错误。当我在组件中使用 getter 时,我通过解构 getter 来解决它,例如:

const user = {
    ...this.$store.getters["Users/getUser"]
  };

但有时,当我需要在 Vuex 操作中使用我的商店状态时,唯一要“取消绑定”对象的方法是使用 JSON.parse(JSON.stringify(state.something)),因为解构仍然会返回 Vuex 突变错误,使用 JSON.stringify 和 JSON.parse 可能是错误的方式:

setActiveUser({ commit, state }, payload) {
  return new Promise((resolve, reject) => {
    let newUser = JSON.parse(JSON.parse(state.user))

    etc
  });
}

解除绑定状态的正确方法是什么?

谢谢你。

标签: vuexactiondestructuringunbind

解决方案


推荐阅读