Я пытаюсь нажать Заменить страницу, как только изменится состояние подключения к сети Wi-Fi. Вся логика, которая имеет дело с отслеживанием состояния соединения, работает хорошо благодаря пакету соединений. Я подписываюсь на пользовательский поток, чтобы справиться с этим.
wifiChangesStream.stream.listen((WifiChange change) {
if(change.connected) {
defaultActionOnWifiBack(context);
} else {
defaultActionOnWifiLoss(context);
}
});
Действия по умолчанию содержат вызовы навигатора:
Navigator.of(context).pushReplacementNamed('/home');
Я бы хотел подписаться только один раз на эти события вместо того, чтобы делать это на каждой странице, поэтому я делаю это на корневом уровне:
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, но проблема та же.