当前位置:   article > 正文

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

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()
},

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

处理

百度说指定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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/450521?site
推荐阅读
相关标签
  

闽ICP备14008679号