我试图在与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,但是问题是相同的。