我们如何检查导航堆栈中是否存在路线?

Ema*_*mad 8 dart flutter

我想检查导航堆栈中是否存在特定路线,以便如果存在,则用于popUntil导航到该页面,而不是在堆栈中生成重复的路线,如果不存在,则为该特定页面推送新路线。

有什么方法可以检查特定路线是否存在?

我尝试了下面的代码:

Navigator.of(context).pushNamedAndRemoveUntil(
        TradePage.routeName, (Route<dynamic> route) => false);
Run Code Online (Sandbox Code Playgroud)

推送新路由并删除堆栈中的任何其他路由,但如果堆栈中存在新路由,我不应该生成新路由

提前致谢。

dm_*_*_tr 3

正如这个答案中提到的,您可以参考Route Observer
另一种方法是将您的路线名称保存在全局变量保存的列表中。因此,每次您想要推送到新页面时,您可以检查该页面名称是否不在您的列表中