Флаттер нескольких блоков и именованных маршрутов - PullRequest
0 голосов
/ 06 апреля 2020

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

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

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

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

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

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

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

1 Ответ

0 голосов
/ 06 апреля 2020

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

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

...