c# - 传递页面 ID 时后退按钮上的外壳路由问题
问题描述
我仅在 Android 上收到以下错误(在 iOS 上很好)
外壳:无法向后导航: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 工作正常
解决方案
或任何将面临此问题并且也有此错误消息的人;
System.ArgumentException: 'Ambiguous routes matched for: ...'
当您在 XAML 中(在 appshell 文件中)注册您的路由并且您还尝试在 C# 中的代码中注册您的路由时,会发生这种情况。仅使用 XAML 或 C# 注册一次路由,而不是同时使用两者。
修复您的错误:很可能您有 2 次页面注册...第一次在 AppShell.xaml.cs 文件中注册,第二次在 AppShell.xaml 中注册。
只需删除双寄存器,它应该可以工作。祝你好运
推荐阅读
- ios - 如何在 Swift 中完成所有单元格数据加载之前不显示 tableView
- bash - 计算 2 个给定时间之间的毫秒差
- javascript - 将 PHP 数组读入 NodeJS 函数
- python - 在 Django 视图中检索 Select2 多值以在后端使用
- vba - Word VBA - 如何插入标题编号的引用;标题文字;要评论的列表项编号和列表项页码?
- c++ - 在 C++ Cpp 中添加文件和文本?
- amazon-web-services - 如何将 JDBC 连接器连接到 AWS Athena 联合查询?
- javascript - 如何在 React Redux 中增加滚动时 Api 分页响应的结果
- python - 多处理似乎没有按预期打印输出
- ios - 使用 iOS 13+ 在 iPad 上区分 iPad 和 mac