使用导航器将其推到小部件之外

时间:2019-03-08 14:47:32

标签: flutter navigator

我试图在与wifi网络的连接状态更改时立即推送替换页面。多亏了连通性软件包,所有用于处理跟踪连接状态的逻辑都能很好地工作。我正在订阅自定义流以处理该问题。

wifiChangesStream.stream.listen((WifiChange change) {
  if(change.connected) {
    defaultActionOnWifiBack(context);
  } else {
    defaultActionOnWifiLoss(context);
  }
});

默认操作都包含对Navigator的调用:

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

我只想订阅一次这些事件,而不是在每个Page中都进行,所以我在根级别进行:

class MyApp extends StatelessWidget {
// This widget is the root of your application.

@override
Widget build(BuildContext context) {
  NetworkWifiManager.listenToWifi(context);
  return MaterialApp(
      //...
  )
}

但是我得到了这个明确的例外:

Unhandled Exception: Navigator operation requested with a context that does not include a Navigator.

我试图订阅路由事件,从那里我们可以访问route.settings.context,但是问题是相同的。

0 个答案:

没有答案