mcf*_*foi 2 navigation parameters shell maui
我实现了一个简单的 Shell 导航(伪代码):
Home -> GoToAsync Page1 -> GoToAsync Page2 -> backward navigate to Home using GoToAsync("../../")
Run Code Online (Sandbox Code Playgroud)
在最后一步中,我传递在 Page1 和 Page2 中收集的参数,以便 Home 中的方法 ApplyQueryAttributes() 第一次执行,并且我可以检索它们。
从那一刻起,用户可以沿着不同的路径移动:
Home -> GoToAsync Page3
Run Code Online (Sandbox Code Playgroud)
事实是:当使用 AppTitle 中的后退按钮或默认“返回”箭头从 Page3 导航回 Home 时,Home 中的方法 ApplyQueryAttributes() 始终执行,并且始终从 Page2 接收热门参数
这是一个 BUG 还是一个功能?
在我看来,这是一个 BUG,因为从 Page3 移动到 Home 时没有任何东西会将这些参数推送到 Home。这就像“回家”路线被缓存,当沿着这条路行驶时,“缓存”路线(带有 is 参数)被执行。
有什么办法可以防止这种行为吗?(无论是什么,错误还是功能)
小智 6
我遇到了同样的问题,但找到了一种解决方法。它不能防止错误行为,但会忽略后置参数:
每个页面都有这个方法来处理后台参数。最后,查询被清除,不会对其他页面造成任何损害。
public async void ApplyQueryAttributes(IDictionary<string, object> query)
{
if (query.Count > 0)
{
// extract parameters
}
query.Clear(); // important
}
Run Code Online (Sandbox Code Playgroud)