欢迎光临
专注前后端开发技术与经验分享

uniapp框架uni.$on重复监听的解决方法

使用uniapp框架开发微信小程序时,遇到个巨坑uni.$emit()会多次触发uni.$on(),仔细看文档后发现:
file
巨坑的地方就是uni.$on()可以重复注册监听,这就会导致多次关闭打开页面后uni.$emit()会触发多个监听事件,但正常需求都只需要uni.$on响应一次就行。

解决方法:

在入门main.js处增加:

let onFun = uni.$on;
uni.$on = (eventName,obj) =>{
  try {
    uni.$off(eventName);
  } catch (error) {}
  onFun(eventName,obj);
}

重写uni.$on默认在$on之前先移除需要监听的eventName,再挂载监听,这就能保证$on只会监听一次

赞(4) 打赏
未经允许不得转载:杰哥博客 » uniapp框架uni.$on重复监听的解决方法

觉得文章有用就打赏杰哥一杯可乐吧~

支付宝扫一扫打赏

微信扫一扫打赏