【解决】uniapp,无法在onLoad及onUnload生命周期内触发激光扫码的监听事件,可在created及beforeDestroy生命周期内触发
uniapp开发App,发现无法在onLoad及onUnload生命周期内触发及销毁子组件内的激光扫码的监听事件。
·
【问题】
uniapp开发App,发现无法在onLoad及onUnload生命周期内触发及销毁子组件内的激光扫码的监听事件。
子组件内示例代码如下:
<script>
export default {
onLoad() {
//监听扫码
uni.$on("scanCodeData", (data) => {
// TODO。。。
});
},
onUnload() {
// 移除监听事件
uni.$off("scanCodeData");
},
}
</script>
【解决】
根据uniapp官方描述可得:
onLoad及onUnload为uniapp为页面生命周期,created及beforeDestroy为组件生命周期。
当我们使用navigateTo或者redirectTo等路由跳转页面时,可以使用页面生命周期内的函数进行相应的方法触发,但是当我们打开一个组件,想立马触发其内部的一个方法时,此时就要改用组件生命周期内的函数进行相应的方法触发。
示例代码改为如下后,即可正常触发及销毁子组件内激光扫码事件:
<script>
export default {
created() {
//监听扫码
uni.$on("scanCodeData", (data) => {
// TODO。。。
});
},
destroyed() {
// 移除监听事件
uni.$off("scanCodeData");
},
}
</script>
更多推荐
已为社区贡献23条内容
所有评论(0)