【问题标题】:Ionic 4 loses stack pointer when navigating backIonic 4 导航返回时丢失堆栈指针
【发布时间】:2019-10-18 22:30:10
【问题描述】:

我有一个场景需要导航到堆栈中的同一条路线,即:

假设我有以下路线:ABCD

我能够执行此导航:A -> B -> C -> D -> B

问题是,当我按下后退按钮时,页面直接转到A 路由,因为当我点击后退按钮时它是否丢失了B -> C -> D 分支。

这对于切换导航来说似乎是一种合理的行为,但是在进行基于堆栈的导航时,这种行为似乎是一个错误。

我尝试使用NavController[routerLink]Router 进行导航,但它们似乎都导致了同样的问题。不知何故,它假设因为路线是相同的,它应该将堆栈的尖端移动到那个点。

【问题讨论】:

    标签: angular ionic4


    【解决方案1】:

    在 Ionic4 中,导航堆栈是在后台控制的。因此,当您路由到新页面时,它会自动执行堆栈推送/弹出。如果它发现路由是new,那么它只是将页面推送到它的堆栈中。如果路线已经访问过,则它弹出到该页面。

    因此,如果您将导航堆栈设置为A -> B -> C -> D,然后访问页面B,那么 Ionic 会看到 B 已经存在于堆栈中。所以它只是弹出页面 D 和 C 并且 不会将新的 B 推入堆栈。所以你的新堆栈是A -> B

    【讨论】:

    • 是的,我已经知道了,这有点像我在问题中所描述的,但如何防止它是我想要弄清楚的。我需要能够将访问过的路由向上推送,而不是弹出到访问过的路由:(
    猜你喜欢
    • 2012-05-02
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 2022-01-17
    • 2015-10-31
    • 1970-01-01
    相关资源
    最近更新 更多