如何让路由器导航额外的“ replaceUrl”才能正常工作?

时间:2019-05-13 03:58:36

标签: nativescript nativescript-angular

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

提交表单后,然后将用户带到屏幕上查看添加的联系人。

当用户随后使用“后退”按钮时,应将其带回到其原始屏幕。

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

从表单导航到视图页面时,我已经使用了额外的replaceUrl导航。

在导航到表单时,我还尝试使用skipLocationChange附加项,但这会带来更多问题。

我创建了一个简单的游乐场页面流,该页面流产生的问题并不完全相同,但是确实引发了一个我不知道该怎么做的错误:

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

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

但是,有一小段时间他们再次看到该表格。这不是理想的用户体验。

在链接的Playground中,我确实得到了一个错误:

  

无法重新附加从其他路由创建的ActivatedRouteSnapshot。

这似乎告诉我replaceUrl确实是从路由表中删除了该页面。

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

1 个答案:

答案 0 :(得分:0)

var result = table.AsEnumerable().GroupBy(row => row["Food"]).Select(grp => new { Food = grp.Key, Eaten = grp.Sum(eaten => (int)eaten["amountEaten"]) }); foreach (var grp in result) { log($"{grp.Food} -> {grp.Eaten}"); } 尚未被Page Router Outlet支持,有一个open feature request,您可能要对该功能进行投票并在此处进行后续更新。