我的 state 是这么定义的
state: {
captchaUrl:process.env.API_ROOT+'users/getCaptcha?',
sign_up:{
msg:'你好',
dis:false
},
user_info:{
headimgurl:'/static/assets/img/user04.png',
name:'超哥最帅'
},
hasToken:'false',
headerUser:true
},
现在我把这个对象存为了一个 conset变量 叫 VUEX_RESET. 然后 当 用户退出时,触发这个事件
this.$store.commit('RESET_VUEX',vuex_reset.VUEX_RESET) //
RESET_VUEX: function (state,ob) {
console.log('vuex初始化成功')
state = ob
console.log(state)//在这里我输出了 state的值,想看看它到底被初始化了没.
}
现在的问题是,当我点击退出时, 在 VUE-dev里我看到的是这样的state,如下,可以看到数据并没有重置
{
"captchaUrl": "http://127.0.0.1:9000/api/users/getCaptcha?",
"sign_up": {
"msg": "你好",
"dis": false
},
"user_info": {
"headimgurl": "https://assets.lambda-study.com/images/58.jpg",
"name": "KingJeason"
},
"hasToken": true,
"headerUser": false
}
而我在 console看到的却看到state的数据重置了.
state: {
captchaUrl:process.env.API_ROOT+'users/getCaptcha?',
sign_up:{
msg:'你好',
dis:false
},
user_info:{
headimgurl:'/static/assets/img/user04.png',
name:'超哥最帅'
},
hasToken:'false',
headerUser:true
}
这时页面的还有用户的信息,但是我一刷新就没有用户的信息了.(我确实不是缓存的问题)
不应该覆盖掉整个state的值,你可以用state.loginInfo保存你需要变更的信息,然后state.loginInfo = ob将其覆盖