我实现了一个简单的Shell导航(伪代码):
Home -> GoToAsync Page1 -> GoToAsync Page2 -> backward navigate to Home using GoToAsync("../../")
在最后一步中,我传递了在Page1和Page2中收集的参数,以便Home中的方法ApplyQueryAttributes()第一次执行,我可以检索它们。
从那一刻起,用户可以沿着不同的路径移动:
Home -> GoToAsync Page3
事实是:当使用AppTitle中的后退按钮或默认“返回”箭头从Page3导航回主页时,主页中的方法ApplyQueryAttributes()始终执行,并且始终从Page2接收当前参数
这是一个BUG还是一个功能?
在我看来,这是一个BUG,因为当从Page3移动到Home时,没有任何东西将这些参数推到Home。这就像“回到家”的路线被缓存,当以这种方式旅行时,“缓存”的路线(带有参数)被执行。
有什么方法可以防止这种行为吗?(不管是什么,一个bug还是一个特性)
1条答案
按热度按时间jvlzgdj91#
我也遇到了同样的问题,但找到了一种解决方法。它不能防止错误行为,但会忽略返回参数:
每个页面都有这个方法来处理返回参数。在它结束时,query 被清除,不会对其他页面造成任何伤害。