【问题标题】:Vue/ Vuex - not saving state dataVue/Vuex - 不保存状态数据
【发布时间】:2017-10-24 08:18:37
【问题描述】:

我做了一个 vuex 模块来保持数据的用户状态。它看起来像这样:

import Vue from "vue";

export default {
  namespaced: true,
  state: {
    data: {},
    meta: {}
  },
  mutations: {
    setInitialUserData: function(user){
      state.data = user;
    },
    setUserMeta: function(meta){
      state.meta = meta;
    },
  },
  actions: {
    setInitialData: function({commit}, user){
      console.log(user);
      commit('setInitialUserData', user.user);
      commit('setUserMeta', user.userMeta);
    },
  },
  getters: {
    getUser: (state) => state.data,
    getUserMeta: (state) => state.meta
  }
}

我正在尝试将登录时的数据保存在我的组件中,如下所示:

this.$backend.post('/user/login', null, payload)
      .then(response => {
        this.$store.dispatch('auth/login', response.data.token);
        this.$store.dispatch('user/setInitialData', response.data.user);
        //this.$router.push('intranet');
      })
      .catch(error => {
        //console.log(error);
      });
  }

我在这里得到的数据:

setInitialData: function({commit}, user){
      console.log(user);
      commit('setInitialUserData', user.user);
      commit('setUserMeta', user.userMeta);
    },
  }, 

看起来像这样:

    "user": {
        "name": "John Doe",
        "nice_name": "John",
        "login_name": "John",
        "email": "john@gmail.com"
    },
    "userMeta": {
        "department": "Administrasjon",
        "region": "Oslo",
        "industry": "Bane"
    },

但是,没有任何东西被保存到状态,在检查 vuex 状态时,我得到了用户数据和用户元的空对象:

user:Object
data:Object (empty)
meta:Object (empty)

【问题讨论】:

  • 对我来说很好:jsfiddle.net/yLmgL8gf/16 你能帮我重现这个问题吗?
  • 我没有将状态传递给突变,这就是它不起作用的原因,忘记这样做了,现在它可以正常工作了。
  • 哦,我记得现在在创建小提琴时修复了丢失的状态,但我没有将它注册为修复/问题:l 无论如何,我会写一个答案来关闭这个问题。

标签: vuejs2 vuex


【解决方案1】:

您没有将状态传递给您的 mutators:

mutations: {
    setInitialUserData: function(state, user){
         state.data = user;
    },
    setUserMeta: function(state, meta){
        state.meta = meta;
    },
},

【讨论】:

    猜你喜欢
    • 2020-01-20
    • 2023-03-06
    • 2019-05-24
    • 2020-05-18
    • 2021-04-10
    • 1970-01-01
    • 2020-07-08
    • 2020-08-04
    • 2020-04-14
    相关资源
    最近更新 更多