瑞丰计算机
瑞丰计算机
  • 发布:2019-10-11 11:00
  • 更新:2020-08-24 17:18
  • 阅读:30266

关于uni-app全局事件监听和释放监听的分享

分类:uni-app

我们在使用uni-app开发的时候,需要在某个页面监听全局事件,并且需要再退出页面的时候释放监听,结果发现释放不了页面的监听,并且找了官方和网上的资料没有明确的解决示例。所以分享一下避免大家采坑。我的理解,之前之所以释放监听无效是因为绑定监听和释放监听并没有使用相同的方法。目前可行的解决方法是把要绑定的方法单独定义出来,这样在绑定和释放监听的时候就能确保都是相同的方法,就能真正释放监听的绑定。示例如下,有问题欢迎留言。

官方事件监听文档

// 我的页面    
onLoad(){    
    // 监听事件    
    uni.$on('scancode',this.callback) ;  
},    
onUnload() {    
    // 移除监听事件    
     uni.$off('scancode',this.callback);    
    },  
methods: {  
callback(data) {  
todo.....  
}  
}
3 关注 分享
2***@qq.com farce z***@gmail.com

要回复文章请先登录注册

fjy1012

fjy1012

https://blog.csdn.net/fire__hero/article/details/108196407,这篇文章写的很详细,可以参考一下
2020-08-24 17:18
4***@qq.com

4***@qq.com

问题已解决,duanshuilu.com 代码太长,我就不贴出来了.,自已去看
2020-06-21 23:40
2***@qq.com

2***@qq.com

回复 一枚小前端 :
同求这个问题
2020-05-29 09:13
Kris__

Kris__

回复 一枚小前端 :
wx.offBLECharacteristicValueChange(function callback)
基础库 2.9.0 开始支持,低版本需做兼容处理。

取消监听低功耗蓝牙设备的特征值变化事件。
微信开发文档上有
2020-05-06 12:07
一枚小前端

一枚小前端

onBluetoothAdapterStateChange 蓝牙适配器监听事件能用这个方式移除监听吗?
2020-04-24 10:10
j***@qq.com

j***@qq.com

我测试过来,这个uni.$emit是有问题的.
第一个页面uni.$emit注册时间.
然后点击跳转到第二个页面.第一次进来,监听不到,返回再进来,才有数据
2019-10-22 10:15
y***@outlook.com

y***@outlook.com

回复 瑞丰计算机 :
uni.$on('loginSuccess',this.getSignUpState());
uni.$off('loginSuccess', this.getSignUpState());
在开发工程里面 这种写法 亲测不行, 不知道为什么
2019-10-22 09:21
瑞丰计算机

瑞丰计算机 (作者)

回复 y***@outlook.com :
你写的和我发的示例不一样哦,调用方法的时候不需要括号。
2019-10-19 11:09
y***@outlook.com

y***@outlook.com

uni.$on('loginSuccess', () => {
this.getSignUpState();
})
uni.$off('loginSuccess', this.getSignUpState());
这种写法能行, 哎醉了
2019-10-18 10:35
y***@outlook.com

y***@outlook.com

按照你的方式调用 TypeError: undefined is not an object (evaluating 't[o].apply') __ERROR
2019-10-18 10:08