热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

获取store的getters,Cannotreadproperty'getters'ofundefined

采用了vue-element-admin里面的登录权限判断,基本都按里面引入和加载了,但是还是会提示报错main.js

采用了vue-element-admin里面的登录权限判断,基本都按里面引入和加载了,但是还是会提示报错
main.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import Vue from 'vue'

import App from './App'

import router from './router'

import store from './store'



Vue.config.productiOnTip= false



/* eslint-disable no-new */

new Vue({

  el: '#app',

  router,

  store,

  components: { App },

  template: ''

})

login.vue

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
export default {

  data () {

    return {

      userName: '',

      passWord: ''

    }

  },

  methods: {

    verify () {

      if (this.userName === '') {

        mui.toast('用户名不能为空!', { duration: 'long', type: 'div' })

        return false

      }

      if (this.passWord === '') {

        mui.toast('密码不能为空!', { duration: 'long', type: 'div' })

        return false

      }

      return true

    },

    login () {

      let result = this.verify()

      if (result) {

        let data = {

          username: this.userName,

          password: this.passWord

        }

        this.$store.dispatch('LoginByUsername', data).then(() => {

          this.$router.push({ path: '/' })

          // mui.toast('登陆成功', { duration: 'long', type: 'div' })

        }).catch(() => {

          // mui.toast(res.msg, { duration: 'long', type: 'div' })

        })

      } else {

        console.log('error submit!!')

        return false

      }

    }

  }

}

login.js

1
2
3
4
5
6
7
8
9
10
11
12
import request from '@/utils/request'

export function loginByUsername (username, password) {

  const data = {

    username,

    password

  }

  return request({

    url: '/User/login',

    method: 'post',

    data

  })

}

user.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { loginByUsername, logout, getUserInfo } from '@/api/login'

import { getToken, setToken, removeToken } from '@/utils/index'

  actions: {

    // 用户名登录

    LoginByUsername ({ commit }, userInfo) {

      const username = userInfo.username.trim()

      return new Promise((resolve, reject) => {

        loginByUsername(username, userInfo.password).then(respOnse=> {

          const data = response.data

          console.log(data)

          commit('SET_TOKEN', data.token)

          setToken(response.data.token)

          resolve()

        }).catch(error => {

          reject(error)

        })

      })

    }

 }

request.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import axios from 'axios'

import mui from 'mui'

import store from '@/store'

import { getToken } from '@/utils/index'

// request interceptor

service.interceptors.request.use(cOnfig=> {

  // Do something before request is sent

  if (store.getters.token) {

    // 让每个请求携带token-- ['X-Token']为自定义key 请根据实际情况自行修改

    config.headers['XX-Token'] = getToken()

  }

  console.log('token +'.store.getters.token)

  return config

}, error => {

  // Do something with request error

  console.log(error) // for debug

  Promise.reject(error)

})

然后请求的时候,老是报错Cannot read property 'getters' of undefined


推荐阅读
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 在深入研究 React 项目的过程中,特别是在探索 react-router 源码时,我发现了其中蕴含的中间件概念。这激发了我对中间件的进一步思考与整理。本文将详细探讨 Redux 中间件的原理及其在实际项目中的应用,帮助读者更好地理解和使用这一强大工具。通过具体示例和代码解析,我们将揭示中间件如何提升应用的状态管理和异步操作处理能力。 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • Vue应用预渲染技术详解与实践 ... [详细]
  • 深入解析:React与Webpack配置进阶指南(第二部分)
    在本篇进阶指南的第二部分中,我们将继续探讨 React 与 Webpack 的高级配置技巧。通过实际案例,我们将展示如何使用 React 和 Webpack 构建一个简单的 Todo 应用程序,具体包括 `TodoApp.js` 文件中的代码实现,如导入 React 和自定义组件 `TodoList`。此外,我们还将深入讲解 Webpack 配置文件的优化方法,以提升开发效率和应用性能。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • React项目基础教程第五课:深入解析组件间通信机制 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 在使用 `useSelector` 选择器时,发现分派操作后状态未能实时更新。这可能是由于 React 组件的渲染机制或 Redux 的状态管理问题导致的。建议检查 `useSelector` 的依赖项和 `dispatch` 的调用时机,确保状态变化能够正确触发组件重新渲染。此外,可以考虑使用 `useEffect` 钩子来监听状态变化,以确保及时更新。 ... [详细]
  • Java环境中Selenium Chrome驱动在大规模Web应用扩展时的性能限制分析 ... [详细]
  • JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ... [详细]
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
  • Vue 实战基础教程第9讲:深入理解计算属性与侦听器的高效使用
    Vue 实战基础教程第9讲:深入理解计算属性与侦听器的高效使用 ... [详细]
  • 本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ... [详细]
  • 本文探讨了Android系统中支持的图像格式及其在不同版本中的兼容性问题,重点涵盖了存储、HTTP传输、相机功能以及SparseArray的应用。文章详细分析了从Android 10 (API 29) 到Android 11 的存储规范变化,并讨论了这些变化对图像处理的影响。此外,还介绍了如何通过系统升级和代码优化来解决版本兼容性问题,以确保应用程序在不同Android版本中稳定运行。 ... [详细]
author-avatar
大豆子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有