我已经花了今天的大部分时间寻找解决方案。我有一个我不希望用户能够导航回到的登录页面。为此,有必要重置路由堆栈,从堆栈中删除登录页面。虽然可以使用Navigator的resetTo(route)
和immediatelyResetRouteStack(route)
方法来实现这一目标,但它们都取消了不错的过渡动画。
所以,我经过一番谷歌搜索后,我回到Stackoverflow,看看是否可以得到一些帮助。我需要的是场景之间的动画过渡,同时重置该过程中的路由堆栈。
我已经看到了此链接,最佳答案实际上无法正常工作。当OndidFocus方法的范围内,您无法访问导航器的实例,该方法仅通过路由对象。这意味着您无法从该功能中调用Navigator的任何方法。
如果我执行navigator.push(route)
,然后使用按钮手动运行navigator.immediatelyResetRouteStack(route)
,它确实可以成功地重置堆栈。这使我认为Settimeout是解决方案,但这似乎都是一般的坏习惯/警察。
我不能是唯一一个有这个问题的人。
我遇到了同样的问题,我用一个解决方法解决了它,答案在另一个主题中,以下是链接:https://stackoverflow.com/a/38111701/1081603