【发布时间】:2021-06-08 17:04:42
【问题描述】:
我仅在 Android 上收到以下错误(在 iOS 上正常)
Shell:无法向后导航:System.ArgumentException:匹配的不明确路由://D_FAULT_FlyoutItem12/IMPL_homepage/homepage/indexpage/indexpage
我在 AppShell 中这样声明页面
Routing.RegisterRoute("indexpage", typeof(Pages.Index));
因为页面的内容是动态的,所以我就这样导航到它
await Shell.Current.GoToAsync($"indexpage?indexid={clicked.ID}");
这在从列表转到索引页面时效果很好
但是,当我到达索引页面,然后通过在 AppShell 中注册的路由,但再次通过传入一个 ID,然后尝试返回时,我得到了错误
同样,该错误仅发生在 Android 上 - iOS 工作正常
【问题讨论】:
-
最后一段描述不清楚,您能否通过重新编写和包含 AppShell.xaml 和 Appshell.xaml.cs 中有关页面结构/层次结构和路由定义的一些代码来澄清?
-
@Cfun 我以为我已经完成了?上面的 Routing 代码来自 AppShell.xaml.cs,GoToAsync 来自后面的页面,该页面使用注册的引用转到页面模板并使用 ID 加载内容。我想知道问题是否与“链接”这些事件有关?因为从列表页面转到 indexpage 时,“后退”按钮在两个平台上都可以正常工作,但是当使用该 ID 转到另一个页面时,就会出现错误
-
我的意思是,与描述代码相比,最少的相关代码(不是一行,也不是一本书)使问题更清晰。
标签: c# xamarin xamarin.forms xamarin.forms.shell