收藏
回答

为什么在wx.showModal中使用不了that?(that=this)

为啥我在wx.showModal中访问不到定义在外边的that呀?打印that显示undefined,代码中也可以看到that是浅色的,说明只定义了没有使用吧?帮帮小白吧~ 谢谢啦!

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

7 个回答

  • brave
    brave
    2021-04-09

    请提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2021-04-09
    有用 1
    回复 1
    • 小五
      小五
      2021-04-11
      2021-04-11
      回复
  • 2021-09-23

    我每次都是在文件顶部定义that,在onLoad生命周期里给that赋值,这样只需要赋值一次,在页面的任何位置都能正常使用

    2021-09-23
    有用
    回复
  • 王小屁
    王小屁
    2021-05-09

    盲猜是转译的锅。可以点开报错信息的 `list.js` 看看转译以后是否还保留了原有的语法作用域。

    2021-05-09
    有用
    回复
  • 小五
    小五
    2021-04-11

    这是这个方法完整的代码


    2021-04-11
    有用
    回复 3
    • 小五
      小五
      2021-04-11
      问题似乎解决了,通过_this这个中间量,将this,传到wx.showModal中,不过还是不清楚是为啥
      2021-04-11
      回复
    • 『余生』有鹿
      『余生』有鹿
      2021-06-25
      那就是 that 在后面被 重新赋值或声明了,你可以试试用 let 声明 that,看看有没有提示(let 是不允许重复声明的)。
      你的 signUpBut 方法是怎么被调用的
      2021-06-25
      回复
    • traveller
      traveller
      2021-07-18
      你的完整代码里showModal的success用箭头函数,this的指向问题
      2021-07-18
      回复
  • peng
    peng
    2021-04-09

    signUpBut 调用的作用域有问题,看下这里面的是不是在回调函数中使用this.signUpBut,是的话外层声明 var that=this ;调用使用that.signUpBut

    2021-04-09
    有用
    回复
  • this
    this
    2021-04-09

    var 改为let看看

    2021-04-09
    有用
    回复 2
    • 小五
      小五
      2021-04-11
      试了,好像不行
      2021-04-11
      回复
    • 安之莫名
      安之莫名
      2021-09-02
      this指向问题,换箭头函数就行
      2021-09-02
      1
      回复
  • HB_
    HB_
    2021-04-08

    var that = this 放在if里面的首行定义

    2021-04-08
    有用
    回复 2
    • 小五
      小五
      2021-04-11
      试了,好像不行
      2021-04-11
      回复
    • 小五
      小五
      2021-04-11
      按照您的方法,后面的代码可以访问到that,但是打印结果还是undefined
      2021-04-11
      回复
登录 后发表内容
问题标签