uni.navigateTo/uni.switchTab页面无法跳转。

 参考文档:

解决方案:

页面跳转(){
	console.log('当前页面堆栈数量:' + getCurrentPages().length);
	
	// 跳转至登陆页,每调用一次,页面堆栈数量加1
	// 连续10次跳转后,小程序中无法进行下一层页面的跳转,再调用switchTab或navigateTo,则页面不会跳转
	// 可调用uni.reLaunch清空页面堆栈(跳转首页时,可调用)或 调用navigateBack跳转至之前的页面
	uni.switchTab({
		url: '/pages/login'
	});
	uni.navigateTo({
		url: '/pages/login'
	});
	
	// 跳转至历史记录之前的页面,页面堆栈数量减x
	uni.navigateBack({
		delta: 1,	// 返回前x个页面
		success(){}
	})
	
	// 清空所有页面堆栈后,跳转至登陆页页面堆栈数量加1
	uni.reLaunch({
		url: '/pages/login'
	});
}

### uni.switchTabuni.redirectTo 的区别及使用场景 #### 一、uni.switchTab 特点与适用范围 `uni.switchTab` 是用于跳转到 tabBar 页面的方法。此方法仅能跳转至配置文件中定义的 tabBar 页面,且允许传递参数[^1]。 - 只适用于跳转到 `tabBar` 配置中的页面。 - 支持携带参数进行页面间的数据传输。 - **适用场景** - 当目标页面位于应用程序底部标签栏(即 tabBar),并且需要向该页面传递额外信息时使用。 ```javascript // 正确用法示例 uni.switchTab({ url: '/pages/index/index' }); ``` #### 二、uni.redirectTo 特点与适用范围 相比之下,`uni.redirectTo` 方法可用于关闭当前页面并重定向到指定的新页面,无论是普通页面还是非 tabBar 页面都可操作,并允许通过 URL 查询字符串的形式附带简单参数[^2]。 - **特点** - 支持关闭现有页面再打开新页面。 - 允许附加查询参数给目标页面。 - **适用场景** - 对于希望替换掉当前历史记录条目来访问另一个页面的情形非常有用,特别是当想让用户能够点击返回按钮回到前一页的时候。 - 如果需要在页面切换过程中传递少量数据,则可以选择这种方式。 ```javascript // 含有参数的例子 let query = 'someValue'; uni.redirectTo({ url: `/pages/report/report?Id=${query}` }); ``` #### 三、两者对比总结表 | 属性 | uni.switchTab | uni.redirectTo | | --- | --- | --- | | 是否改变 tabbar 状态 | 是 | 否 | | 是否可以传参 | 否 | 是 | | 所属页面类别 | 必须为 tabBar 中设置好的页面 | 普通页面或非 tabBar 页面 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值