uni-app uni.navigateTo 页面栈堆积过多,导致页面不能跳转新页面
uni-app uni.navigateTo 页面栈堆积过多,导致页面不能跳转新页面
测试过的手机:
所有
示例代码:
··· uni.navigateTo({ url:‘index’ }) ···
## 操作步骤:
···
uni.navigateTo({
url:'index'
})
···
预期结果:
当页面栈过多,每当有一个页面进来,删除最前面的一个
实际结果:
没有删除最前面的一个,导致没有出现新的页面
bug描述:
uni.navigateTo 页面栈堆积过多,导致页面不能跳转新页面
| 信息类别 | 信息内容 |
|--------------|----------------|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC版本号 | 1903 |
| HBuilderX | 正式 |
| HBuilderX版本| 3.2.16 |
| 手机系统 | 全部 |
| 手机系统版本 | iOS 15 |
| 手机厂商 | 苹果 |
| 手机机型 | 区安监部 |
| 页面类型 | vue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app uni.navigateTo 页面栈堆积过多,导致页面不能跳转新页面的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app uni.navigateTo 页面栈堆积过多,导致页面不能跳转新页面的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的页面栈溢出问题。在 uni-app 中,uni.navigateTo 会不断向页面栈添加新页面,当页面栈深度达到限制(通常为10层)后,将无法继续跳转。
解决方案:
-
使用
uni.redirectTo替代
如果不需要保留当前页面,使用uni.redirectTo关闭当前页面并跳转,避免栈深度增加。 -
手动管理页面栈
在跳转前判断栈深度,超过阈值时使用uni.redirectTo:const pages = getCurrentPages(); if (pages.length >= 10) { uni.redirectTo({ url: 'index' }); } else { uni.navigateTo({ url: 'index' }); }

