7***@qq.com
7***@qq.com
  • 发布:2024-05-10 15:59
  • 更新:2024-09-06 17:35
  • 阅读:379

【报Bug】疑似uni.navigateBack当delta大于1引起的bug

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 4.15

浏览器平台: Chrome

浏览器版本: 124.0.6367.61

项目创建方式: HBuilderX

操作步骤:

A跳转B再跳转C,在C页通过uni.navigateBack并指定delta为2跳转到A,重复二次以上

预期结果:

C跳转A时应销毁B页,且避免当多次跳转A->B->C时页面栈存在重复的B

实际结果:
let pages = getCurrentPages()  
pages.map(p=>p.route)//['portal/page', 'pagesB/view/index/index', 'pagesB/view/index/index', 'pagesB/view/index/index','pagesB/view/index/index', 'pagesB/view/lists']

bug描述:

现有A、B、C三个页面。(页面跳转均使用navigateTo。)
场景:
A跳转B再跳转C,在C页通过uni.navigateBack并指定delta为2跳转到A,此时打印页面栈正常。当重复该步骤(A->B->C)第二次及以上时,打印页面栈发现重复的B页,且当A跳转B会触发B页的activated钩子,这意味着当C跳转A时,B页没有被销毁(我的项目全局未使用keep-alive)。

我的期望:C跳转A时销毁B页,且避免当多次跳转A->B->C时页面栈存在重复的B

2024-05-10 15:59 负责人:DCloud_UNI_LXH 分享
已邀请:
DCloud_UNI_LXH

DCloud_UNI_LXH

运行到 web 上,没有复现你所说的问题,从 C back 到 A 时,页面栈中的数量一直到是 1 ,只有 A 页面。请提供一个可复现的最小 demo

  • Roue

    我也需要了同样的问题 a=>b=>c 然后 navigateBack delta:2 到a ,再次 a=>b=>c ,此时在页面栈中有两个b

    2024-08-20 11:00

nothingblack7

nothingblack7

我们也遇到了,反复来回跳转,导致navigateBack无效,没反应
uni.navigateBack({
//返回首页
delta: 1000,
success: () => {

                    },  
                    fail(err) {  

                    },  
                    complete() {  

                    }  
                });
DCloud_UNI_LXH

DCloud_UNI_LXH

使用最新版 alpha 测试 vue2、vue3 平台多次,均未复现问题

要回复问题请先登录注册