Как управлять связью между блоками

Я работаю с библиотекой flutter_bloc. Представьте ситуацию, что вы перемещаетесь глубоко в своем приложении, и каждый экран в навигационном стеке представляет данные (слегка отличающиеся, потому что иначе это не имело бы смысла), которые могут быть изменены пользователем. Поскольку мы используем Bloc, каждый экран подключен к своему собственному блоку. Теперь пользователь изменяет данные.

Мой вопрос: как я могу указать другим блокам/экранам перестроиться с обновленными данными?

Насколько я понимаю, блоки на маршрутах, которые я сейчас не просматриваю, закрываются. Поэтому они больше не слушают события. РЕДАКТИРОВАТЬ: это предположение неверно, см. ответ.


person Daniel Wei    schedule 13.12.2019    source источник
comment
Затем вы используете Navigator.push *, вы получаете Future, вы можете использовать «then», чтобы узнать, когда появится представление, и отправить RefreshEvent в блок, чтобы состояние обновилось.   -  person Ricardo Markiewicz    schedule 13.12.2019
comment
Хорошо, еще не думал об этом, но если вы получаете данные из базы данных с задержкой, это будет не очень удобно для пользователя. Я подумал о чем-то вроде модели с прицелом, что я могу каким-то образом обновить все экраны, какая-то умная реализация блока.   -  person Daniel Wei    schedule 13.12.2019


Ответы (1)


Окончательный ответ. Мое предположение было неверным. Блоки не закрываются, если маршрут все еще находится в стеке навигации. Таким образом, вы все еще можете добавлять события в Блоки, которые находятся на других маршрутах.

person Daniel Wei    schedule 20.12.2019