const pages = getCurrentPages()
const delta = pages.reverse().findIndex(item => item.route === 'pages/visit/record/index')
console.log(pages, 'pages-----------')
if (delta > 0) {
uni.navigateBack({
delta: delta
})
return
}

- 发布:2024-08-20 11:26
- 更新:2024-08-21 11:15
- 阅读:473
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 10
HBuilderX版本号: 4.25
浏览器平台: Chrome
浏览器版本: 版本 127.0.6533.101(正式版本) (64 位)
项目创建方式: CLI
CLI版本号: ~4.5.19
示例代码:
操作步骤:
1、创建三个页面A、B、C
2、使用navigateTo完成 A=>B=>C的页面跳转
3、使用navigateBack delta:2 从C =>A
4、重复2,3操作
1、创建三个页面A、B、C
2、使用navigateTo完成 A=>B=>C的页面跳转
3、使用navigateBack delta:2 从C =>A
4、重复2,3操作
预期结果:
1、页面创建成功
2、页面跳转路径 A=>B=>C
3、页面跳转路径C =>A
4、页面跳转路径 A=>B=>C=>A
1、页面创建成功
2、页面跳转路径 A=>B=>C
3、页面跳转路径C =>A
4、页面跳转路径 A=>B=>C=>A
实际结果:
1、页面创建成功
2、页面跳转路径 A=>B=>C
3、页面跳转路径C =>A
4、此时在页面栈中有两个B返回不到A
1、页面创建成功
2、页面跳转路径 A=>B=>C
3、页面跳转路径C =>A
4、此时在页面栈中有两个B返回不到A
bug描述:
使用uni.navigateBack 后再次进入销毁的页面,此时在页面栈中有重复
1、创建三个页面A、B、C
2、使用navigateTo完成 A=>B=>C的页面跳转
3、获取A在页面栈的位置为2, 通过navigateBack返回到A页面
4、再次执行2,此时在页面栈中有两个B,获取到A的页面栈顺序为3,但是在navigateBack中使用delta:3又返回不到A
返回操作代码如下:
const pages = getCurrentPages()
const delta = pages.reverse().findIndex(item => item.route === 'pages/visit/record/index')
console.log(pages, 'pages-----------')
if (delta > 0) {
uni.navigateBack({
delta: delta
})
return
}
3 个回复
DCloud_UNI_yuhe
你好,我这根据你的描述模拟的项目没有发现这个问题,你可以把相关内容整合到一个项目中,提供给我们吗?
Roue (作者)
打印出的页面栈
DCloud_UNI_yuhe
你好,可以提供一下你的项目吗?方法是打包成zip在下方的附近中提交
2024-08-21 10:41
Roue (作者)
回复 DCloud_UNI_yuhe: 提供了 刚才太大了 没上传上去
2024-08-21 10:43
DCloud_UNI_yuhe
回复 Roue: 好的我测试一下
2024-08-21 10:44
DCloud_UNI_yuhe
你好,我该怎么样操作才能复现你这样的效果呢?我这里走到D页面都是这样的
Roue (作者)
a=>b=>c=>d=>b=>c=>d....这样重复点 快速点击
2024-08-21 14:01
DCloud_UNI_yuhe
回复 Roue: 看起来是你的延迟造成的吧,把延迟去除就没有这种情况了
2024-08-21 14:21
Roue (作者)
回复 DCloud_UNI_yuhe: 业务场景是接口请求完成之后返回 我就加了个延时模拟
2024-08-21 15:15
DCloud_UNI_yuhe
回复 Roue: 你尝试一下再接口请求外执行getCurrentPages之后再调用
2024-08-21 15:24
Roue (作者)
回复 DCloud_UNI_yuhe: onload中执行 getCurrentPages把pages存起来 然后在需要的时候拿 还是不行
['pages/information/index/index', 'pages/information/record/record', 'pages/information/infromationDetail/index', 'pages/information/infromationDetail/index', 'pages/information/add/index']
2024-08-21 15:39