解决$store.getters调用不执行的问题
2019-11-09 07:05
1736 查看
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()
钻研不易,转载请注明出处。。。。。。
以上这篇解决$store.getters调用不执行的问题就是小编分享给大家的全部内容了,希望能给大家一个参考
您可能感兴趣的文章:
相关文章推荐
- 解决存储过程执行快,但程序调用则执行慢的问题
- 解决QProcess对象调用execute执行cmd命令不支持中文和空格的问题
- 解决存储过程执行快,但程序调用则执行慢的问题
- 解决存储过程执行快,但程序调用则执行慢的问题
- 使用 Hibernate 在 JPA 中 调用 generateSchema 会出现执行两次 SQL 语句问题的解决方法
- java调用Bat cmd命令和Linux Shell,并获取执行中的输出(字符乱码问题解决)
- 解决Ajax在兼容模式下后台调用执行两次结果不变的问题(已解决)!
- 完美解决Android中onActivityResult提前执行调用的一系列问题
- 解决存储过程执行快,但程序调用则执行慢的问题
- 关于Python中并发调用管道执行外部程序的问题解决
- bat中调用多个bat命令时,第一个bat执行完就退出了的问题解决
- Java调用exe,exe在任务管理器中挂起未执行问题解决方法
- C# WPF VS2012 对类型“ ”的构造函数执行符合指定的绑定约束的调用时引发了异常 问题解决办法 产生什么原因
- 解决存储过程执行快,但程序调用则执行慢的问题
- viewPagerFragment的子fragment的onActivityResult()无法执行调用问题解决方案
- android 调用系统相机或者系统相册功能时,onActivityResult方法不执行问题的解决过程
- 执行文件下载Java 调用 FFMPEG 命令时用 url 作为输入源,Linux 下出现 “no such file or directory” 问题的解决
- ioctl调用不执行问题的解决
- 解决IE浏览器 点击子元素重复调用执行 mouseover 与mouseout兼容性问题
- 解决存储过程执行快,但程序调用则执行慢的问题