热门标签 | 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)



   



推荐阅读
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
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社区 版权所有