收藏
回答

小程序内调用组件功能(如蓝牙识别,nfc读取)后,形成闭包并且无法获取this.data中的值?

rt,应用环境如下:进入页面后调用api实例化nfc对象,代码截图:

红圈内的proofA()方法是nfc读卡流程,里面有大量异步回调流程,其中在成功识别nfc信息后,会setData()页面data中的属性值,如:setData({
code:...//

})

在proofA()方法内部打印that.data.code值正常,说明set流程有效。但是在onUnload()内部获取this.data.code就是空!我猜测是因为proofA()方法内部由于回调嵌套太深,导致形成了一个闭包环境,setData()流程外部无法获取。请问如何解决这个问题?

最后一次编辑于  2023-07-07
回答关注问题邀请回答
收藏

2 个回答

  • Demons
    Demons
    2023-07-08

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2023-07-08
    有用
    回复 1
    • null
      null
      2023-07-10
      无法提供代码片段,因为nfc卡片无法提供给你,我创建代码片段你也没法测试重现。问题产生的情况如我描述那样:在NFC相关api的回调流程内部修改this.data内的值,并且打印出来是正常的,但是我在页面关闭的钩子函数内部去获取被修改的值就无法获取到。
      2023-07-10
      回复
  • life0080
    life0080
    2023-11-20

    老哥,这个问题有解决吗?我遇到了一样的情况,第一次进入页面能修改this.data中的值,第二次就改不了了。折腾好久了

    2023-11-20
    有用
    回复 2
    • life0080
      life0080
      2023-11-28
      我的问题解决了,我在onDiscover中的回调函数没有定义在methods中
      2023-11-28
      回复
    • [社会社会]
      [社会社会]
      02-20
      老哥现在你解决了吗,我出现这个问题啦
      02-20
      回复
登录 后发表内容