vuex commit state的值没改变
正常情况用户登录成功将token保存在localstorage中,登陆成功了但是localstorage中没token信息
后端返回的token:
token为null
login.vue
import axios from 'axios'
import store from '@/vuex/store'
import * as types from '@/vuex/types'
submitForm(formname) {
var _this = this;
this.$refs[formname].validate((valid) => {
if (valid) {
axios.post('/api/users', {
username: this.form.email,
password: this.form.password,
action: 'login'
})
.then(function(res){
store.commit('types.LOGIN', res['data']);
console.log(store);
_this.$router.push('/dashboard');
})
.catch(function(err){
console.log(err);
_this.noticeBox('用户名或密码不正确');
});
}else{
console.log('error submit!!');
return false;
}
});
},
store.js
import Vue from 'vue'
import Vuex from 'vuex'
import * as types from './types'
Vue.use(Vuex);
const state = {
user: {},
token: null,
title: ''
}
const mutations = {
[types.LOGIN]: (state, data) => {
localStorage.token = data;
state.token = data;
},
[types.LOGOUT]: (state) => {
localStorage.removeItem('token');
state.token = null;
}
}
export default new Vuex.Store({
state,
mutations
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
感谢评论指出,我的答案是错误的,请忽略
你的,localStorage
的用法错了存数据应该,localStorage.setItem('token', '你的要存的token')
获取数据;localStorage.getItem('token')
,删除数据localStorage.removeItem('token')