收藏
回答

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

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


下图为封装的request方法

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


回答关注问题邀请回答
收藏

3 个回答

  • 禾店科技
    禾店科技
    2021-04-28

    success 的回调用箭头函数试试

    2021-04-28
    有用 1
    回复
  • \
    \
    2019-08-06

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

    2019-08-06
    有用
    回复 3
    • 小夏
      小夏
      2019-08-06

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

      2019-08-06
      回复
    • \
      \
      2019-08-07
      回调函数的this是指回调本身,所以平时都用that=this,然后在回调里用that指向具体位置(位置由this定义的地方决定)
      2019-08-07
      回复
    • 禾店科技
      禾店科技
      2021-04-28
      success 的回调用箭头函数试试
      2021-04-28
      1
      回复
  • G-STEPS街舞工作室
    G-STEPS街舞工作室
    2019-08-06

    success 的回调用箭头函数试试

    success: ()=>{}

    2019-08-06
    有用
    回复 11
    • 小夏
      小夏
      2019-08-06


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

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



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

      2019-08-06
      回复
    • 卢霄霄
      卢霄霄
      2019-08-06回复小夏
      方便做个代码片段吗
      2019-08-06
      回复
    查看更多(6)
登录 后发表内容