3***@qq.com
3***@qq.com
  • 发布:2021-03-08 19:13
  • 更新:2021-03-10 00:25
  • 阅读:1716

【报Bug】uni.$on()注册的事件只能触发一次,非常常用的方法,请修复

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10 64位

HBuilderX类型: 正式

HBuilderX版本号: 3.1.4

手机系统: 全部

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

在A页面onLoad里添加 uni.$on("functionA",this.functionA),全局注册functionA方法

3/9补充:A页面是tabbar页面,才会有这个问题

预期结果:

在B页面使用uni.$emit("functionA"),functionA触发成功
然后返回,重新进入B页面,再次uni.$emit("functionA") => 触发成功

实际结果:

在B页面使用uni.$emit("functionA"),functionA触发成功
然后返回,重新进入B页面,再次uni.$emit("functionA") => 触发失败

bug描述:

工作的代码,不方便贴
uni.$on()好像变成了uni.$once(),但也不是只触发一次,是第二次进入触发的页面就不能触发

2021-03-08 19:13 负责人:无 分享
已邀请:
3***@qq.com

3***@qq.com (作者)

问题已经解决

如果uni.$off没有传入参数,则移除App级别的所有事件监听器;

我在页面B使用了uni.$off()

期望有一个移除某个页面所有注册方法的事件

2***@qq.com

2***@qq.com - 我叫王乜乜,大家可以叫我王野野,不过我比较喜欢叫王托托,不过我真正叫王大仙!

虽然我没遇到,但是遇事解决留方案的精神值得点赞!

该问题目前已经被锁定, 无法添加新回复