前端登录后获取后端token,后端token有时限,过期后需要重新登录获取token(调用vuex中的退出方法).
modules user.js 文件
export default {
namespaced: true,
state: () => ({
token: uni.getStorageSync(TOKEN_KEY) || "",
userInfo: uni.getStorageSync(USER_INFO_KEY) || {},
}),
actions: {
/**
* 退出登录
*/
logout(content) {
this.commit("user/removeToToken");
this.commit("user/removeToUserInfo");
},
},
};
在接口请求文件中调用logout()方法
import store from "vuex";
import { mapActions } from "vuex";
console.log("store", store);
console.log("logout", store.mapActions("user", ["logout"]));
console.log("logout()", store.mapActions("user", ["logout"]).logout());
控制台报错
发现是request.js是比main.js先执行的,vuex还没生效
可能描述的不够清楚,可以继续补充信息
请大佬指点一二
说的比较直白一些,mapAction返回的结果不是给你用的,是给Vue构造的时候用的。提示告诉你dispatch不可访问,因为闭包的关系有些东西不是直接调用就好使的。
如果没记错的话store.dispatch就行,你可以查看一下store的原型