Существует ли правильный способ прослушивания модели потока / области действия с «корневой» страницы или местоположения в приложении Flutter, и после получения некоторых данных отображать соответствующее уведомление (например, Snackbar) на любой открытой в данный момент странице (возможно, недомашняя страница)?
Я хотел бы иметь возможность отображать определенные уведомления по всему приложению, а не только постранично.
Здесь у меня есть домашняя страница, которая мояНа начальной странице приложения начинается прослушивание потока из scoped_model, полученного из контекста, и при получении данных отображается диалоговое окно независимо от страницы, которую посещает пользователь.
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
MyService service = ScopedModel.of<MyService>(context);
service.events.stream.listen((data) {
showDialog<String>(
context: context,
barrierDismissible: true, // dialog is dismissible with a tap on the barrier
builder: (BuildContext context) {
return AlertDialog(
title: Text('An Event has Occurred'),
content: Text('$data'));});
});
return Scaffold(
//Navigator Push Routes - Page 1 / Page 2 / Page 3 / etc
);}
Этот вид работает, но на самом деле это не так.Не думаю, что кто-то делал это раньше, кто мог бы предложить лучшее решение?
Я мог бы добавить похожего слушателя на каждую страницу, но опять же это кажется действительно ненужным