Vue/Vuex - 不保存状态数据
Vue/ Vuex - not saving state data
我做了一个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)
您没有将状态传递给您的修改器:
mutations: {
setInitialUserData: function(state, user){
state.data = user;
},
setUserMeta: function(state, meta){
state.meta = meta;
},
},
我做了一个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)
您没有将状态传递给您的修改器:
mutations: {
setInitialUserData: function(state, user){
state.data = user;
},
setUserMeta: function(state, meta){
state.meta = meta;
},
},