Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在没有上下文的任何地方调用Navigator.com?_Flutter_Dart - Fatal编程技术网

Flutter 在没有上下文的任何地方调用Navigator.com?

Flutter 在没有上下文的任何地方调用Navigator.com?,flutter,dart,Flutter,Dart,我一直在根据这个精彩的教程()设置一个选项卡式导航应用程序 现在我想显示一个覆盖整个屏幕的模式覆盖登录路径。我的登录控制器检查用户是否已登录,我想触发一个出现模式登录路由的事件。我现在遇到的问题是,我没有接收到显示登录路径信号的上下文对象: Navigator.of(context.pushReplacementNamed('/') 我如何解决这个问题,或者这是错误的方法 我的用户控制器是在应用程序启动时启动的单例对象。然后检查用户数据模型,如果未设置,则希望调用登录屏幕/路由 谢谢你给我指明了

我一直在根据这个精彩的教程()设置一个选项卡式导航应用程序

现在我想显示一个覆盖整个屏幕的模式覆盖登录路径。我的登录控制器检查用户是否已登录,我想触发一个出现模式登录路由的事件。我现在遇到的问题是,我没有接收到显示登录路径信号的上下文对象:

Navigator.of(context.pushReplacementNamed('/')

我如何解决这个问题,或者这是错误的方法

我的用户控制器是在应用程序启动时启动的单例对象。然后检查用户数据模型,如果未设置,则希望调用登录屏幕/路由

谢谢你给我指明了正确的方向。
Martin

您可以使用globalKey访问小部件的上下文(您必须在构造函数中向它传递一个键),并将其保留在全局空间中,或在任何类中保持静态。。。。
虽然不是最优雅的方法,但应该有效

您可以使用此包跳过所需的上下文。


使用作为参数提供的顶级上下文初始化对象。
// go to second page using named route
OneContext().pushNamed('/second');
// go to second page using MaterialPageRoute
OneContext().push(MaterialPageRoute(builder: (_) => SecondPage()));