xamarin - Prism Navigation - 满足特定条件时将用户导航到不同的页面
问题描述
我将 Xamarin.Forms 与 Prism 7.2 一起使用。以前版本的 Prism 中曾经有一个方法OnNavigatingTo
,但在 7.2 中删除了这个方法。我不确定如何实现这种行为:
- 在每个 PageViewModel 我想运行一些代码,如果满足特定条件,我需要将用户重定向到不同的页面。例如,如果没有用户登录,我想将他重定向到登录页面。或者如果用户的同意已过期,我想将他重定向到同意页面。
我用OnNavigatingTo
这个。我只是检查了我的条件并NavigationService.NavigateAsync("xy")
在需要时打电话。这工作得很好。但是,此方法已被删除,我不知道如何在新版本的 Prism 中实现此行为。
我试图将此代码放入OnNavigatedTo
or Initialize
。问题是这不会停止当前的导航,并且无论如何它都会导航到错误的页面。
我该如何处理这种情况?
- 我可以在某个超时时间内运行导航到登录/同意页面
OnNavigatedTo
,因此用户将被导航到普通页面,然后在呈现后导航到登录/同意页面。但我不喜欢这个解决方案,这对我来说似乎很hacky - 我可以
NavigationService
以某种方式覆盖 Prism 并在NavigationAsync
方法中处理它吗?但是,我不确定我是否甚至可以覆盖此服务,此外,此服务/方法应该做它的用途 - 导航它被询问的位置,而不是任何检查和重定向...... - 还有其他我没有注意到的解决方案吗?...
解决方案
推荐阅读
- swift - PHPickerViewController 隐藏搜索栏和导航栏
- robotframework - 将 Robotframework 关键字和页面对象结合起来是好还是坏?
- python - 获取非 NaN 值的列名作为新列
- php - Laravel 编辑浅层嵌套资源
- angular - 我如何更新ngrx商店-当按钮在角度UI中单击时
- c++ - 将图像大小调整为 2x2
- django - 将字典列表中存在的多个 id 与模型 django 的 id 进行比较
- java - java.util.zip解压时为什么我的程序会跳过文件?
- pip - 无法使用 pip install --upgrade pip 升级 pip
- amazon-web-services - 无服务器 AWS Lambda Dynamodb 引发内部错误