Vuex状态仅在局部突变范围内更新

时间:2019-10-22 08:25:05

标签: vue.js vuex

我正在尝试使用变异来更新存储状态。但是问题在于,突变后状态保持不变,并且仅在该突变的范围内进行更新。它的作用更像是将参数传递给函数。

期望的是商店中的状态应该更新,但是这没有发生。存储状态根本没有发生变化,但是参数状态正在发生变化。

这是我的实现的示例代码。我正在为Vuex Store使用模块,这是来自

  

user.store.js

 export const user = {
  state: {
   user: {},
   isAuthenticated: false
  },
  mutations: {
   updateUser(state, payload) {
     Vue.set(state.user, payload.key, payload.value);
   }
  }
}

编辑2: 我已解决此问题,这是由于用户存储模块和 state.user 对象的命名类似。 更改存储模块的名称后,问题已解决。

谢谢您的贡献。

1 个答案:

答案 0 :(得分:0)

尝试在突变中使用Vue.set

例如:

state: {
    isInteractionEnabled: false
},
mutations: {
    SWITCH_INTERACTION: (state, {status}) => Vue.set(state, 'isInteractionEnabled', status)
},