чем provider не нравится?
Зависимостью от контекста
а можно пример когда прям мешает?
Показывание уведомлений из бэкграунда. Логика формирования уведомлений находится в блок. В бэкграунд коллбеке нет контекста. Доступ к блоку через провайдер не получить
А почему не сделать вот так: Репа: завсит от некоторого SomePushNotificator (деталей реализации не знаю, опираюсь упрощенно на контекст беседы) PushNotificationRepo(SomePushNotificator notif) инициализируем публичный StreamController<Message> messageSC в PushNotificationRepo; Блок: зависит от соответсвующей PushNotificationRepo PushNotificationBloc(PushNotificationRepo repo) При инициализации подписываем PushNotificationBloc на messageSC.listen из PushNotificationRepo Блок объявляем в BlocProvider, а Репу в RepositoryProvider, где можно достать их когда надо. 1. PushNotificationBloc инициализирует PushNotificationRepo; 2. PushNotificationRepo инициализирует SomePushNotificator (notifCallback); 3. Приходят уведомления через notifCallback в PushNotificationRepo, отправляем их в блок messageSC.add(Message(...)); 4. PushNotificationBloc получает уведомления и вызывает emit(...);
Бэкграунд коллбек вызывается в другом изоляте, так что там что провайдер что get_it не нужны
Да уже все сижу на get it / injectable
Обсуждают сегодня