Множественные блоки Flutter и именованные маршруты

Нужен совет относительно архитектуры флаттера. Я создаю приложение, которое имеет около 10 экранов, все они хранятся как именованные маршруты и используют onGenerateRoute.

Я пытаюсь реализовать блоки и потоки, чтобы я мог транслировать на одну страницу, когда другая страница, скажем, создает новую запись (все обрабатывается в онлайн-базе данных SQL).

Итак, у меня есть две страницы, которые используют один блок, еще 3 страницы, которым нужен доступ к другому блоку ... и т. Д. Означает ли это, что единственный способ предоставить доступ - это поставить поставщика блока для всех блоков вверху дерева виджетов , делая все блоки доступными для всех страниц?

Я попытался предоставить доступ к одному блоку индивидуально на двух страницах, используя поставщика в верхней части каждой из этих двух страниц ... однако, я думаю, это означает, что я фактически создаю два отдельных объекта BloC? вместо того, чтобы обе страницы фактически использовали одну и ту же страницу. Поэтому, когда страница B создает новую запись, она не вызывает страницу A для перезагрузки ...

Я бы не хотел, чтобы все страницы обращались ко всем блокам, но есть ли единственный способ сделать это, чтобы поместить блок в место, где он является единственным предком любой страницы, которая в нем нуждается?

Я также довольно смущен тем, почему мы закрываем потоки ... Я думал, что дело в том, что они являются непрерывным источником данных ... если мы их закроем, они больше не будут доступны для трансляции подписчикам?

Совершенно запутанный, и через 3 часа видео на YouTube я не понимаю. Заранее спасибо...


person Gary Frewin    schedule 06.04.2020    source источник


Ответы (1)


Проверьте это https://bloclibrary.dev/#/recipesflutterblocaccess?id=generated-route-access

Когда виджеты, которым требуются блоки, удаляются, блоки также должны быть удалены. В противном случае вы потребляете ресурсы без необходимости, поддерживая его в рабочем состоянии.

person Federick Jonathan    schedule 06.04.2020