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

使用vuex,在请求数据时提示"Cannotreadproperty'dispatch'ofundefined"

刚学习vuex,今天在写登录注册时,使用了vuex保存了登录成功时,服务端返回的数据,但是在axios请求时,却提示“TypeError:Cannotreadpropertydispa

刚学习vuex,今天在写登录注册时,使用了vuex保存了登录成功时,服务端返回的数据,但是在axios请求时,却提示“TypeError: Cannot read property 'dispatch' of undefined”
代码如下:
state.js:



1
2
3
4
5
6
7
8
9
const state = {

  userInfo: {

    avatar: '', // 登录头像

    nickname: '', // 登录昵称

    signature: '', // 个性签名

    userId: '', // 用户Id

    token: '' // token

  }

}

getters.js

1
export const getUserInfo = state => state.userInfo

mutation-types.js



1
export const SET_USERINFO = 'SET_USERINFO'

mutations.js

1
2
3
4
5
const mutatiOns= {

  [types.SET_USERINFO] (state, user) {

    state.userInfo = user

  }

}

actions.js

1
2
3
4
setUserInfo ({commit}, user) {

    window.window.sessionStorage.user = JSON.stringify(user)

    commit(types.SET_USERINFO, user)

}

methods: {

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
...mapActions({

  setUserInfo: 'setUserInfo'

}),

onLogin () {

  if (this.loginstate.$invalid === false) {

    var datas = '&mobile=' + this.phonenumber + '&password=' + this.password

    this.$axios.post('/api/Auth/Login', datas, {

      headers: {

        'Content-Type': 'application/x-www-form-urlencoded'

      }

    }).then(res => {

      let user = {

        avatar: res.data.data.avatar,

        nickname: res.data.data.nickname,

        signature: res.data.data.signature,

        token: res.data.data.token,

        userId: res.data.data.user_id

      }

      this.setUserInfo(user) // 加上这行代码,就会在catch中提示我‘TypeError: Cannot read property 'dispatch' of undefined’,但是正常数据又是能够请求到的,请问是哪里出了问题?

      console.log(this.setUserInfo(user))

      if (res.data.code != 0) {

        Toast({

          message: res.data.data.msg,

          position: 'bottom'

        })

      } else {

        this.$router.push('/home')

      }

    })

    .catch(err => console.log(err))

  }

}

}

1
2
3
运行结果:



![clipboard.png](/img/bV1988)



   



推荐阅读
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • Fiddler 安装与配置指南
    本文详细介绍了Fiddler的安装步骤及配置方法,旨在帮助用户顺利抓取用户Token。文章还涵盖了一些常见问题的解决方案,以确保安装过程顺利。 ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • 本文详细介绍了如何处理Oracle数据库中的ORA-00227错误,即控制文件中检测到损坏块的问题,并提供了具体的解决方案。 ... [详细]
  • 本文深入分析了在使用JavaScript中的Date.UTC()方法初始化Date对象时,getDay()方法返回值与预期不符的原因,并提供了相应的解决方案。 ... [详细]
  • 来自FallDream的博客,未经允许,请勿转载,谢谢。一天一套noi简直了.昨天勉强做完了noi2011今天教练又丢出来一套noi ... [详细]
  • 题面:P3178[HAOI2015]树上操作好像其他人都嫌这道题太容易了懒得讲,好吧那我讲。题解:第一个操作和第二个操作本质上是一样的&# ... [详细]
  • 解决Expo XDE 2.22.1版本启动错误
    根据问题描述,用户在将Expo升级至2.22.1版本后,在尝试打开项目时遇到了错误。本文提供了详细的错误分析及解决方案。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • 在学习了Splay树的基本查找功能后,可能会觉得它与普通的二叉查找树没有太大的区别,仅仅是通过splay操作减少了时间开销。然而,Splay树之所以被誉为“序列之王”,主要在于其强大的区间操作能力。 ... [详细]
  • 告别jQuery:Bootstrap5即将全面脱离jQuery依赖及其他前端热点
    本文精选了2019年2月「前端大全」平台上的15篇热门文章,涵盖技术分享与资源推荐。关注前端大全,获取更多前沿信息,提升您的前端技能。 ... [详细]
  • 本文详细介绍了PostgreSQL与MySQL在SQL语法上的主要区别,包括如何使用COALESCE替代IFNULL、金额格式化的方法、别名处理以及日期处理等关键点。 ... [详细]
  • 本文详细介绍了`android.os.Binder.getCallingPid()`方法的功能和应用场景,并提供了多个实际的代码示例。通过这些示例,开发者可以更好地理解如何在不同的开发场景中使用该方法。 ... [详细]
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社区 版权所有