如何让路由器导航额外 "replaceUrl" 正常工作?

How do I get the Router navigate extra "replaceUrl" to work correctly?

我有一个联系人添加表单,可以从我们应用程序的多个屏幕导航到该表单。

提交表单后,我会将用户带到一个屏幕以查看已添加的联系人。

当用户随后使用后退按钮时,它应该将他们带回到他们来自的屏幕。

这可能是 Android 后退按钮或调用 RouterExtensions 后退功能的按钮。

我在从表单导航到视图页面时使用了额外的导航功能 replaceUrl

我也曾尝试在导航到表单时使用 skipLocationChange extra,但这会产生更多问题。

我创建了一个简单的 playground 页面流,它产生了不完全相同的问题,但确实抛出了一个我不知道如何处理的错误:

https://play.nativescript.org/?template=play-ng&id=BfVcGZ&v=2

在我们的应用程序中,通过使用 replaceUrl extra,后退按钮确实会将用户带到正确的页面。

但是,有一小会儿他们又看到了表格。这不是理想的用户体验。

在链接的 Playground 中我确实收到错误:

Cannot reattach ActivatedRouteSnapshot created from a different route.

这似乎告诉我 replaceUrl 确实正在从路由 table 中删除页面。

但是,该页面尚未销毁,因此该应用正在尝试显示它不应该显示的页面。

Page Router Outlet 尚不支持

replaceUrl,有一个 open feature request,您可能想对该功能进行投票并跟进那里以获取进一步的更新。