收藏
回答

自定义组件,调用封装的request,执行回调打印this为undefined?

自定义组件中,调用了外部引入的request方法请求数据


下图为封装的request方法

只要在组件中调用外部的这个request方法,bindTeleSucc中的this就是undefined,这是为什么呢?


最后一次编辑于  08-06  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

15 个回答

  • G-STEPS街舞工作室
    G-STEPS街舞工作室
    08-06

    success 的回调用箭头函数试试

    success: ()=>{}

    08-06
    赞同
    回复 11
    • 小夏
      小夏
      08-06


      是这样吗,打印出来还是undefined,是不是我写错地方了

      08-06
      赞同
      回复
    • 卢霄霄
      卢霄霄
      08-06回复小夏
      路径上的所有 function都要改成箭头的方式
      08-06
      赞同
      回复
    • G-STEPS街舞工作室
      G-STEPS街舞工作室
      08-06回复卢霄霄
      doSuccess 也改了吗?另外建议不要使用 doSuccess 这个回调的方式了,用 promise 吧,代码看起来会舒服很多
      08-06
      赞同
      回复
    • 小夏
      小夏
      08-06回复卢霄霄



      还是不行,这个成功后的回调函数里的代码是能够执行的,就是这个this总是undefined

      08-06
      赞同
      回复
    • 卢霄霄
      卢霄霄
      08-06回复小夏
      方便做个代码片段吗
      08-06
      赞同
      回复
    查看更多(6)
  • \
    \
    08-06

    你console.log(this)的地方,this作用域不是整个page吧

    08-06
    赞同
    回复 2
    • 小夏
      小夏
      08-06

      这个console.log(this)是一个component里的,我也不是很清楚这个this是指向哪里的,正常的话,这个this是需要指向这个组件吧,但是在普通的methods函数中,互相调用打印这个this,都有值,但是去调用这个外部引入的request请求,回调函数中的this就是undefined

      08-06
      赞同
      回复
    • \
      \
      08-07
      回调函数的this是指回调本身,所以平时都用that=this,然后在回调里用that指向具体位置(位置由this定义的地方决定)
      08-07
      赞同
      回复