首页 > 其他分享 >解决pinia中更新值失败的问题

解决pinia中更新值失败的问题

时间:2024-02-14 21:00:31浏览次数:36  
标签:status 函数 success resp 更新 失败 pinia error message

来看一段代码,思考第19行代码能否正常输出?:

async function login(account_id:string, password:string):Promise<string>{
    let error_message = '';
    await $.ajax({
        url: '',
        type: "post",
        data: {
            //.......
        },// eslint-disable-next-line
        success(resp:any) {
            if(resp.error_message === 'success'){
                this.token = resp.token;
                this.status = resp.status;
            }
        },// eslint-disable-next-line
        error(resp:any) {
            error_message = "failed";
        }
    })
    console.log("第19行",this.status)
    if(error_message==='success')   return error_message;
    return error_message;
}

上述代码,存在一个常见的 JavaScript 异步问题:$.ajax 的回调函数中的this上下文会丢失。
successerror 回调函数中,this 不再指向 Vue 组件的实例,而是指向 $.ajax 的内部上下文。
因此,当你尝试访问 this.tokenthis.status 时,实际上访问的是 $.ajax 内部上下文中的 tokenstatus,而不是 Vue 组件的状态。
这个问题可以通过使用箭头函数来解决。箭头函数不会改变 this 的指向,而是会继承外部函数的上下文。这意味着在箭头函数内部,this 将保持与外部函数相同的值。

success: (resp:any) => { // 使用箭头函数
  //  ......
},
error: (resp:any) => { // 使用箭头函数
  //  ......
}

标签:status,函数,success,resp,更新,失败,pinia,error,message
From: https://www.cnblogs.com/twinkler/p/18015583

相关文章

  • 【题单】一个动态更新的洛谷综合题单
    洛谷试炼场的题目确实很具有代表性,但是近几年以来,又有许多经典题目出现在OI界中,这个大题单就是作为洛谷试炼场的扩展和补充。目录新版本食用指南更新日志题单Part0试机题Part1入门阶段Part2基础算法Part3搜索Part4动态规划Part4.1-4.4动态规划Part4.5-4.12动态规......
  • docker 中安装apt-get install vim 失败,且apt-get update 报404
    在docker中安装vim时,安装失败。在更新apt-get时,报错如下:root@a8a94b78ebf0:/#apt-getupdateIgn:1http://deb.debian.org/debianstretchInReleaseIgn:2http://deb.debian.org/debianstretch-up......
  • nodejs如何更新(4种方法)
    node.js是一个开放源代码的跨平台javascript运行环境,它在不同的平台上都得到了广泛使用和支持。强大的生态系统、持续的更新和不断改进的性能使得node.js非常受欢迎。然而,更新node.js仍然是一个必要的过程,因为它可以保证应用程序的安全性和稳定性,同时也可以让你获得新的功能和性能......
  • springboot整合redis报错:链接失败;org.springframework.data.redis.RedisConnectionFai
    错误原因:开启了保护模式解决方案:关闭保护模式和防火墙具体步骤:1、打开你的redis配置文件,做出如下修改2.开启进程守护yes代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。3.......
  • 向Linux看齐!Win 11发布重磅更新:原生支持sudo命令
    微软于今天向WindowsInsider项目成员发布了Windows11Build26052预览版更新,首次在Windows系统中引入了对于原生sudo命令的支持。对于不熟悉Linux系统的用户来说,sudo命令可能有些陌生。但对于Linux用户和开发者而言,sudo命令无疑是日常工作中最常用的命令之一。sudo命令可以让......
  • 考研失败如何快速找到编程工作?
    考研成绩马上就要出来了,但是按照往年的录取情况,以及自己的考试表现来预估的话,相信大部分人心里早已有了答案。能上岸的同学还好,接下来几年继续自己的求学之后就好。但对于不能上岸的同学来说,已经到了不得不为自己将来考虑的时候了。那么问题来了,之前一直在忙考研的事情,就业的知......
  • 更新用户基本信息-完成参数校验
    实体参数校验@NotNull@NotEmpty@Email接口方法的实体参数上添加@Validated注解@PutMapping("/update")publicResultupdate(@RequestBody@ValidatedUseruser){userService.update(user);returnResult.success();}@NotNullpri......
  • 执行 set-ExecutionPolicy RemoteSigned 失败解决方法
    1、Window+r,输入powershell 2、输入命令行set-ExecutionPolicyRemoteSigned3、再输入命令行Set-ExecutionPolicy-ScopeCurrentUser4、验证一下是否成功了:输入get-ExecutionPolicy,系统回复Restricted,表示状态是禁止的;若是提示了RemoteSigned就代表成功。5、如......
  • 解决淘宝登录频繁提示,验证失败,点击框体重试(error:9tFhU6)
    1、起因近期淘宝登录需要右划验证,才能点击登录,但是一直提示"验证失败,点击框体重试"类似错误如下图所示2、发现问题通常有这种问题的,大概率是安装了浏览器广告屏蔽插件经核查,我的浏览器安装的是AdGuard看了一下页面的调试日志,发现有一条用来通信的WebSocket协议被插件屏蔽了......
  • pve在执行apt-get update 更新软件包时报错:E: Failed to fetch https://enterprise.pr
    问题原因如下......