澐淡2020
澐淡2020
  • 发布:2020-05-09 22:03
  • 更新:6 天前
  • 阅读:371

关于uni-app使用 uni.$on uni.$emit 进行页面传值的坑!《开发日记》 2020.5.9

分类:uni-app

第一个 APP 快开发完了,结果发现个重大问题!

子页面用 uni.$emit 转值 给父页面,父页面用uni.$on 接收值判断是否刷新面页,正式测试时发页面数据刷新时 onShow 居然会重复多次触发。

找了一整天问题,反复琢磨了 2 天,第 3 天终于找出了问题根源!

uni-app 的 api 文档 里只说了用什么方式传值,但没说需要注意的地方!

使用 uni.$emit 传值后必须在使用页面的onUnload中加入 uni.$off 关闭全局监听才行,否则面子页面无法完全释放,父页面就会多次触发带有 uni.$on 代码的 onShow()。

花了 2 天时间把程序里所有涉及 uni.$emit 的页面加了uni.$off 代码后问题全部解决!

没办法,入坑就入坑,反正比直接搞原生的代码方便很多!

1 关注 分享
wm8898@126.com

要回复文章请先登录注册

objcat

objcat

回复 yoooo :
不能默认执行 只能在unload中手动调用
6 天前
314574151@qq.com

314574151@qq.com

干嘛不用once
2020-06-30 15:51
yoooo

yoooo

回复 yoooo :
```
let y;
```
2020-06-30 15:32
yoooo

yoooo

回复 objcat :
大佬 具体怎么用
2020-06-30 15:31
objcat

objcat

默认就执行 uni.$off 它不香吗 [狗头]
2020-05-11 10:43
malindong

malindong

这个锅uniapp不背 你自己的问题
2020-05-09 23:12
上风下云

上风下云

文档看的不够仔细啊,off操作在文档里也写了的
2020-05-09 22:37