zoukankan      html  css  js  c++  java
  • $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()
    

    钻研不易,转载请注明出处。。。。。。

  • 相关阅读:
    插入排序
    排序算法结构表
    两个数字交换的四种方法
    LRU算法实现
    虚拟用户的配置
    【转】Linux查看CPU和内存使用情况
    Linux 多线程开发
    【转】RTSP流理解
    【转】DynDNS使用随笔
    【转】使用 udev 高效、动态地管理 Linux 设备文件
  • 原文地址:https://www.cnblogs.com/s313139232/p/10985831.html
Copyright © 2011-2022 走看看