z***@yeah.net
z***@yeah.net
  • 发布:2023-04-06 08:48
  • 更新:2023-04-06 09:06
  • 阅读:661

【报Bug】redirectTo后,还能收到uni.onNativeEventReceive事件

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 11

HBuilderX类型: 正式

HBuilderX版本号: 3.7.9

手机系统: Android

手机系统版本号: Android 11

手机厂商: 华为

手机机型: android

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

垃圾

预期结果:

垃圾

实际结果:

垃圾

bug描述:

uni小程序sdk,两个vue页面都调用uni.onNativeEventReceive,定义相同的事件,一个页面redirectTo到另外一个页面,原生发送定义的事件后,两个页面都触发了。不是说redirectTo会关闭之前的页面吗,为什么还能收到?

2023-04-06 08:48 负责人:无 分享
已邀请:
星拾夜暝

星拾夜暝

1️⃣、可以在redirectTo之前,手动调用uni.offNativeEventReceive(),将之前调用的onNativeEventReceive事件取消注册。

2️⃣、在onNativeEventReceive事件中,增加一个判断条件,判断是否为当前页面的事件。只有当前页面才会执行事件,避免了其他页面也执行该事件的情况。

  • 星拾夜暝

    redirectTo并不是完全关闭之前的页面,而是保留了页面栈中的前一个页面。在redirectTo之前调用的onNativeEventReceive依然会保留。为了解决这个问题,我们可以手动调用uni.offNativeEventReceive()取消之前的事件注册,或者在onNativeEventReceive事件中增加判断条件。

    2023-04-06 09:07

  • z***@yeah.net (作者)

    回复 星拾夜暝: 我找了很长时间才找到这个问题,uni.offNativeEventReceive()这个方法我在文档里也没搜到,最后加的判断条件,谢了

    2023-04-06 11:14

  • 星拾夜暝

    回复 z***@yeah.net: 嗯嗯

    2023-04-06 13:32

要回复问题请先登录注册