uniapp uni.navigateBack 连带返回问题记录

uniapp uni.navigateBack 连带返回问题记录

问题描述

去除原生导航栏,使用自定义导航,并使用自定义返回按钮,通过方法handleBack.navigateBack()返回到上一页。

共有3层页面,A -> B -> C。都是自定义导航栏。均使用navigateTo进行跳转,通过点击事件,直接调用navigateBack()返回上一层。

预期结果:C页面调用返回B页面,C -> B。

实际效果:但是偏偏直接返回A页面,C -> A

代码

<cu-custom class="fade-in" :isBack="true"   style="z-index: 999;" >
	<block slot="backText">
		<span  style="margin-left: 10rpx;font-size: 40rpx;" class="cuIcon-back text-black" @click="handleBack"></span>
	</block>
	<block slot="content">
		<span class="text-black">详情</span>
	</block>
		  		  
</cu-custom>

<!-- js -->

handleBack(){ //处理返回
	uni.navigateBack()
},

处理

百度说指定delta层数返回,但是没有用

突然发现PC端运行小程序,页面会比较卡顿,发现确实是 C -> B ,但是接下来又自动触发 B -> A。才会导致直接从 C -> A的结果

到这里,就已经开始怀疑是事件冒泡弄的结果了。

事件冒泡

所谓的冒泡就是事件的逐级向上传导的过程,当后代元素上的事件被触发时,其祖先元素的相同事件也会被触发。

@click.stop

采用@click.stop 来处理事件,果然不会直接返回到A页面

<cu-custom class="fade-in" :isBack="true"   style="z-index: 999;" >
	<block slot="backText">
		<span  style="margin-left: 10rpx;font-size: 40rpx;" class="cuIcon-back text-black" @click.stop="handleBack"></span>
	</block>
	<block slot="content">
		<span class="text-black">详情</span>
	</block>		  		  
</cu-custom>
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值