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