Я недавно начал играть с паттерном BLo C во Flutter и пытаюсь понять проблему с провайдером BLo C. Мой класс выглядит следующим образом:
class LoginBlocProvider extends InheritedWidget {
final LoginBloc bloc;
LoginBlocProvider({Key key, Widget child})
: bloc = LoginBloc(),
super(key: key, child: child);
@override
bool updateShouldNotify(InheritedWidget oldWidget) => true;
static LoginBloc of(BuildContext context) {
return context.dependOnInheritedWidgetOfExactType<LoginBlocProvider>().bloc;
}
}
Теперь большинство прочитанных мною статей говорят о том, чтобы добавить провайдера в дерево виджетов прямо над приложением Материал
return LoginBlocProvider(
child: MaterialApp(...)
)
Моя проблема с этим это то, что происходит, если у вас сложное приложение с большим количеством экранов. Кажется, это очень быстро запутается
return LoginBlocProvider(
child: AccountBlocProvider(
child: ScreenOne(
child: ScreenTwo(
child: ScreenThree(
...
)
)
)
)
)
Есть ли более эффективный способ справиться с этим?