关于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
相关问题
NavPathStack使用问题
1362浏览 • 1回复 待解决
关于Intent跳转桌面问题
7023浏览 • 1回复 待解决
HarmonyOS NavPathStack长度如何监控
92浏览 • 1回复 待解决
如何使用NavigationnavPathStack参数
676浏览 • 1回复 待解决
关于属性动画问题
9722浏览 • 3回复 待解决
关于MySQL用户权限问题
2137浏览 • 1回复 待解决
关于picker-view问题
6799浏览 • 1回复 待解决
HarmonyOS 跳转页面问题
102浏览 • 1回复 待解决
HarmonyOS nav跳转问题
179浏览 • 1回复 待解决
HarmonyOS router跳转问题
130浏览 • 2回复 待解决
HarmonyOS 跳转问题如下
137浏览 • 1回复 待解决
关于烧录时出现问题
9782浏览 • 2回复 待解决
HarmonyOS关于多线程问题
133浏览 • 1回复 待解决
关于鸿蒙module依赖问题
11146浏览 • 1回复 待解决
HarmonyOS关于API使用问题
91浏览 • 1回复 待解决
关于Java UI Checkbox问题?
5476浏览 • 1回复 待解决
关于发布证书更新问题
58浏览 • 1回复 待解决
ceph配置问题关于host配置
2188浏览 • 1回复 待解决
关于鸿蒙OS蓝牙开发问题
4505浏览 • 1回复 待解决
关于xml中include使用问题
7223浏览 • 2回复 待解决
HarmonyOS 关于代理提醒数量问题
76浏览 • 1回复 待解决