HarmonyOS router若干问题
问题一:router栈的上限为32,app内的页面跳转可能会超过32,这上限可以突破吗?
问题二:栈内有A-B-C时,在C内调用方法以下方法回到了B内,但在B内无法通过router.back()返回A,这是为什么?有解决方法吗? router.replaceUrl({ url: B }, router.RouterMode.Single)
补充说明:回到B内后,从B开始跳转了新页面,也同样不能通过router.back()回到上一页。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS router 返回问题
351浏览 • 1回复 待解决
HarmonyOS router跳转问题
520浏览 • 2回复 待解决
HarmonyOS router路由跳转问题
491浏览 • 0回复 待解决
HarmonyOS router传参获取问题
537浏览 • 1回复 待解决
HarmonyOS router路由路径的问题
553浏览 • 1回复 待解决
关于import router from '@system.router'提示问题?
5078浏览 • 1回复 待解决
HarmonyOS router.back返回页面问题
45浏览 • 1回复 待解决
router传递hashmap参数问题
1571浏览 • 1回复 待解决
router 路由跳转相关问题
353浏览 • 1回复 待解决
router.getParams使用问题
766浏览 • 1回复 待解决
HarmonyOS 关于router.back问题的咨询
460浏览 • 1回复 待解决
HarmonyOS router打开har下页面的问题
408浏览 • 1回复 待解决
router、Navigation混合使用存在问题,后续HarmonyOS如何规划的
374浏览 • 1回复 待解决
HarmonyOS 使用router.back返回时,传递参数的问题
852浏览 • 1回复 待解决
HarmonyOS 关于router.pushNamedRoute还要引用对应的类这个问题。
21浏览 • 1回复 待解决
HarmonyOS router pushUrl报错
685浏览 • 1回复 待解决
HarmonyOS router.replaceUrl
45浏览 • 1回复 待解决
HarmonyOS import router from '@ohos.router';和import { router } from '@kit.ArkUI'哪个是最新的
379浏览 • 1回复 待解决
HarmonyOS 关于router.back()
733浏览 • 1回复 待解决
Class Router和namespace router有什么区别
1623浏览 • 1回复 待解决
router.pushUrl(NavPathStack) 透传给 Navigation 组件,页面存在卡死的问题
2218浏览 • 1回复 待解决
HarmonyOS Navigation和router怎么用
34浏览 • 1回复 待解决
HarmonyOS 跳转方式Router和Navigator
409浏览 • 1回复 待解决
HarmonyOS Router如何返回指定页面
40浏览 • 1回复 待解决
HarmonyOS router无法跳转,并报错。
584浏览 • 1回复 待解决
问题一:在HarmonyOS中,页面路由栈的上限为32页面。这是为了确保系统的稳定性和性能优化。如果在应用内的页面跳转过程中超过了这个上限,是无法继续添加新的页面的。具体来说:HarmonyOS的页面路由栈支持的最大Page数量为32。当页面栈内的页面数量达到32时,无法再添加新的页面。
因此,在进行页面跳转时,需要合理管理页面栈,确保不会超过这个上限。虽然页面栈有上限,但可以通过其他方式来实现页面之间的跳转和管理,例如使用导航组件和模态转场来实现更灵活的页面切换。
参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/6_40_u6a21_u6001_u8f6c_u573a_u8bbe_u7f6e-V5
问题二:在页面 C 中调用 router.replaceUrl 方法回到 B 后,无法通过 router.back() 返回 A。 router.replaceUrl 方法是替换当前页面,这意味着当前页面(C)被替换为新的页面(B),因此在栈中不存在 C 了。这会导致当前页面 C 被替换成 B,栈中不再包含 C。
所以,当在页面 B 时,router.back() 无法返回到 A,因为 A 已经不在栈中了。
要解决这个问题,可以考虑以下方法:
1、使用 router.push 而不是 router.replaceUrl
2、通过页面参数传递状态,在页面跳转时传递状态参数,以便在页面 B 中知道从哪里跳转过来,必要时可以手动处理返回逻辑。例如: