小编Jør*_*sen的帖子

nuxt 应用程序中的 Vuex 抛出“不要在变异处理程序之外改变 vuex 存储状态”!

在我的 NUXT 应用程序中,我使用的是 vuex 商店模块!当我运行应用程序并调用

this.$store.dispatch('userStore/setLoggedInUser',currentUser); //default.vue
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息,说“不要在突变处理程序之外改变 vuex 存储状态”,该错误会无限循环!

我的模块看起来像这样:

const actions = {
  setLoggedInUser({commit},currentUser){
    return new Promise((resolve,reject)=>{
      commit('mutateLoggedInUser',currentUser);
      resolve();
    });
  }
}

const mutations = {
  mutateLoggedInUser(state,user){
    state.loggedInUser = user;
  }
}
Run Code Online (Sandbox Code Playgroud)

我找到了一个解决方案(有点)。通过在 store/index.js 文件中将严格模式设置为 false,错误就会消失。

export const strict = false
Run Code Online (Sandbox Code Playgroud)

但这似乎是一个笨拙的解决方案,我真的不明白发生了什么。这是 NUXT 中的错误还是我在我的 vuex 商店中做了一些奇怪的事情?

vue.js vuex nuxt.js vuex-modules

4
推荐指数
1
解决办法
4351
查看次数

标签 统计

nuxt.js ×1

vue.js ×1

vuex ×1

vuex-modules ×1