vue前端控制器中出现this is undefined的问题

本文介绍了在Vue项目中遇到的this在匿名函数中变为undefined的问题,详细解析了问题产生的原因:匿名函数的this指向不确定。并提出了解决方案,即通过使用箭头函数来确保this的正确指向。通过修改代码,将then后的回调函数改为箭头函数,成功解决了this的指向问题,从而避免了tableData1无法赋值的错误。
摘要由CSDN通过智能技术生成

解决vue前端控制器中出现this is undefined的问题

  1. 出现问题的代码。
getAllLog1(){
      this.$http({
        method: "get",
        url: "/getAllog1.php",
      })
        .then(function (response){
          this.tableData1=response.data;
          })
        .catch(function (error) {
          console.log(error);
        });
    },
  1. 原因:匿名函数的this指向运行时实际调用该方法的对象,无法在编写函数时确定
  2. 解决方法:使用箭头函数回调数据,箭头函数内部的this是词法作用域,在编写函数时就已经确定了,由上下文确定,而不是指向调用该方法的对象。
  3. 修改代码如下:
getAllLog1(){
      this.$http({
        method: "get",
        url: "/getAllog1.php",
      })
        .then(response =>{//此处修改为箭头函数
          this.tableData1=response.data;
          })
        .catch(function (error) {
          console.log(error);
        });
    },
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值