我实现了一个简单的 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 参数)被执行。
有什么办法可以防止这种行为吗?(无论是什么,错误还是功能)