关于NavPathStack的跳转问题

有一个场景,进入A页面后,点击返回需要进入B页面,实现是这样的:

//进入B页面 
DynamicsRouter.getInstance().push(RouterInfo.IDENTIFY_SELECT) 
// 500ms后退出A页面; 
//为什么要先进入B,而不是先退出A在进入B,因为如果这样的话,用户会很明显的感觉到A的退出和B的进入,会有页面动画重叠的问题; 
setTimeout(()=>{ 
  DynamicsRouter.getInstance().removeByName(RouterInfo.LOGIN.moduleName+"/"+RouterInfo.LOGIN.pageName,false) 
},500)

在未升级到5.0之前,以上代码是生效的;但是升级到5.0后,以上的代码执行后,会变成:点击退出A页面后,B进入,然后A又进入了,就感觉我调用removeByName A,变成了进入A,这是怎么回事。

removeByName实现如下:

public  removeByName(name:string, animated?: boolean): boolean { 
  try { 
    // 查找到对应的路由栈进行pop 
    let object = this.getNavPathStack().popToName(name,animated); 
    if(object==undefined){ 
      return false; 
    } 
    return true; 
  }catch (e){ 
    LogUtils.error(TAG,"pop  异常:"+e) 
  } 
  return false 
}
HarmonyOS
2024-08-10 13:30:20
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

popToName是回退路由栈到由栈底开始第一个名为name的NavDestination页面,并不是删除路由,如果需要删除路由建议使用removeByName参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-navigation-V5#ZH-CN_TOPIC_0000001847049960__poptoname11

分享
微博
QQ
微信
回复
2024-08-10 17:54:19
相关问题
关于Intent跳转桌面问题
7309浏览 • 1回复 待解决
NavPathStack使用问题
1563浏览 • 1回复 待解决
HarmonyOS NavPathStack出栈问题
312浏览 • 1回复 待解决
如何使用NavigationnavPathStack参数
1138浏览 • 1回复 待解决
HarmonyOS NavPathStack长度如何监控
298浏览 • 1回复 待解决
Navigation页面跳转问题
308浏览 • 1回复 待解决
HarmonyOS 关于ColorFilter问题
267浏览 • 1回复 待解决
关于属性动画问题
9988浏览 • 3回复 待解决
HarmonyOS 关于taskpool问题
126浏览 • 1回复 待解决
arkts 关于异步问题
199浏览 • 1回复 待解决
关于MySQL用户权限问题
2290浏览 • 1回复 待解决
关于picker-view问题
7064浏览 • 1回复 待解决
HarmonyOS 关于Web调试问题
111浏览 • 1回复 待解决
HarmonyOS 关于C API问题
92浏览 • 1回复 待解决
HarmonyOS 关于Navigation组件问题
329浏览 • 1回复 待解决
支付后路由跳转问题
139浏览 • 1回复 待解决
HarmonyOS nav跳转问题
402浏览 • 1回复 待解决
HarmonyOS 跳转页面问题
301浏览 • 1回复 待解决
HarmonyOS 跳转问题如下
407浏览 • 1回复 待解决