我的应用向服务器发出了多个请求。有时服务器可能会要求用户重新登录,类似于以下问题: Flutter: how to force an application restart (in production mode)?
我可以做这样的事情,
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => LoginPage()),
(Route<dynamic> route) => false);
但是我需要为此提供一个BuildContext。
在非Widget类中,是否可以获取当前(最近使用)的上下文?我知道我每次进行服务器调用时都可以将上下文作为参数传递,但是我希望找到一种不太麻烦的方法来实现这一点。
答案 0 :(得分:1)
寻找fit()
的原因是因为您想获得m.fit(X, y, model__sample_weight=np.array([3,4,2,3]))
。 (所有context
调用都在幕后进行Navigator
,以便在小部件树顶部附近找到一个(通常)唯一的导航器。)
如果您真正想要的只是访问导航器,则还有另一种方法。使您的应用程序具有状态,并在其状态下放置一个全局密钥。
Navigator.pushXXX
在应用程序的构建(或顶部继承的小部件的构建)中,当创建材质应用程序时,将密钥传递给它。
Navigator.of(context)
现在,从应用程序级别,您可以使用 GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();