$store.getters调用不执行
$store.getters调用不执行
api:https://vuex.vuejs.org/zh/guide/getters.html
场景:
在登录时将登录得到的用户信息存储在vuex的state和sessionStorage中。使用时在state中获取,当因为刷新等原因导致state中没有数据时,去sissionStorage中获取。
错误:
登录后,需要获取用户信息时,getters中属性的方法不会执行。只是去getters中获取缓存
解决方法:
将getters中的属性改写成方法,这样每次调用的时候就会执行,去从新获取数据。
getloginInfor: (state) => () => {}
代码:
import Vue from 'vue'
import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({
state: {
/* 登录用户信息 */
loginInfor: {
}
},
mutations: {
setloginInfor (state, msg) {
state.loginInfor = msg
}
},
actions: { },
getters: {
getloginInfor: (state) => () => {
// 先从state里面获取用户登录信息
let loginInfo = state.loginInfo
// 如果 state 里面获取不到,那么从localStorage里面获取
if (!loginInfo) {
loginInfo = JSON.parse(sessionStorage.getItem('loginInfo'))
}
return loginInfo
}
}
})
使用:
this.$store.getters.getloginInfor()
钻研不易,转载请注明出处。。。。。。
随机推荐
- jenkins安装以及自由风格的项目搭建(jenkins+tomcat+svn)
jenkins提供了直接通过war包启动以及通过tomcat容器启动的启动方法,这里使用tomcat来启动jenkins,这也是我觉得更稳定的方法. 提前搭建好tomcat环境,这里我使用的版本是:A ...
- Python做域用户验证登录
安装包 ldap3 代码: from ldap3 import Server, Connection, ALL, NTLM # 连接 server = Server('public.ad.com', ...
- PLSQL报错: ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务
一开始吓尿了,以为自己动着什么东西了把数据库玩坏了,谁知道打开服务发现服务没启动........... 我们要确保数据库服务是启动状态
- SSH开发中 使用超链接到action 其excute方法会被执行两次 actual row count: 0; expected: 1
由于执行两次excute,所以在做删除操作的时候会出现 Batch update returned unexpected row count from update [0]; actual row c ...
- web搜索框的制作(必应)
搜索框中我们输入一些字或者字母,为何下面就会有一些自动补齐的相关搜索,比如我在搜索输入框中输入一个字母e,下面就会出现饿了么,e租宝,ems等相关的搜索链接.然后经过百度,发现原来很多厂商的服务器早已 ...
- java回调函数详解
声明:博客参考于https://www.cnblogs.com/yangmin86/p/7090882.html,谢谢哥们 回调函数:是指在A类执行代码时,调用了B类中的方法,但B类中的方法执行了A类 ...
- flutter 打包
iOS打包 iOS打包需要注意一下一些设置 info.plist 设置ATS.白名单.字符串等等 Assets.xcassets 替换icon,替换LaunchImage中内容 注意LaunchIma ...
- APP营销软件项目常见(合规)风险评估
一个软件项目开始前,往往需要先进行风险评估以及可行性评估,尤其涉及到营销拉新类项目,需要大量依靠用户二次分享传播,为了避免项目做了无用功,分享一些常见的App项目风险: 微信分享功能 风险: 1.蒙层 ...
- 使用 joblib 对 Pandas 数据进行并行处理
使用 joblib 对 Pandas 数据进行并行处理 如果需要对一个很大的数据集进行操作,而基于一列数据生成新的一列数据可能都需要耗费很长时间. 于是可以使用 joblib 进行并行处理. 假设我们 ...
- 解决 JDK1.7 不支持 VCenter 6.7 的问题(涉及到Https TLS1.2协议)
解决 JDK1.7 不支持 VCenter 6.7 的问题 问题描述 原项目工程是使用JDK 1.7,可以连接 5.X版本和 6.0版本的 VCenter资源池. 但是,现在VCenter已经升到 6 ...