navigator标签使用navigate跳转最多十层问题

uniapp——navigator标签

navigate跳转引起的页面栈堆积问题
项目需要,使用redirect跳转会导致重定向,不利于用户体验。但是用navigate,当数目过多时,navigator不跳转。

<script>
	var app = getApp()
	export default {
		data() {
			return {
				isClick:false
			}
		},
		methods: {
				navTap:function(item){
					this.isClick = true;
					// 长度可以设置length>9,我用的时候,大于2可以满足需求,大于10反而会出现太多页面堆积
					var curPages = getCurrentPages().length;
					if(curPages>2) {
						uni.redirectTo({
							url:'/pages/a'
						})
					}else{
						uni.navigateTo({
							url:'/pages/a'
						})
					}
			},
		},
		onShow:function(){
			this.isClick = false;
		},
		//  监听页面卸载
		onUnload:function(e){
			if (!this.isClick) {
				uni.navigateBack({
					delta: 1,
				})
			}
		},
	<script>
<template>
	<view  @tap="navTap">跳转下一页面</view>
</template>

当页面栈层数到10时,navigate不能点击跳转,页面也没有报错,网上找了很多,综合根据我自己的理解整理出来,自己测试可以用的。

补充——

直接使用navigate
提交返回时,返回上一级页面并刷新某一函数实现数据更新

以下仅为示例:

let pages = getCurrentPages()
let prevPage = pages[ pages.length - 2 ];
// 触发上一页 upData 函数(并携带参数)
if (prevPage.route.indexOf('teach') == -1) {  // 返回的路径是否包含teach,用于一个页面不同按钮点击时返回不同的页面
		prevPage.$vm.upData("")
} else{
		prevPage.$vm.upData()
}
// 获取上一页栈
	uni.navigateBack({
		delta: 1
	})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值