gpt4 book ai didi

flutter - Flutter BLoC提供者查询

转载 作者:行者123 更新时间:2023-12-03 05:00:02 25 4
gpt4 key购买 nike

我最近开始在Flutter中使用BLoC模式,并且正在努力了解BLoC提供程序的问题。我的课看起来像这样

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;
}
}

现在,我读过的大多数文章都说将Provider添加到Material应用程序上方的小部件树中
return LoginBlocProvider(
child: MaterialApp(...)
)

我的问题是,如果您有一个具有大量屏幕的复杂应用程序,将会发生什么。看来这会很快变得困惑
return LoginBlocProvider(
child: AccountBlocProvider(
child: ScreenOne(
child: ScreenTwo(
child: ScreenThree(
...
)
)
)
)
)

有没有更有效的方法来管理此问题?

最佳答案

This page解释了如何解决在应用程序开始时提供所有集团的可读性问题。有一个名为MultiBlocProvider的小部件,它带有Provider小部件列表。

所以它看起来像这样:

return MultiBlocProvider(
providers: [
BlocProvider<LoginBloc>(
create: (BuildContext context) => LoginBloc(),
),
BlocProvider<AccountBloc>(
create: (BuildContext context) => AccountBloc(),
),
BlocProvider<PageOneBloc>(
create: (BuildContext context) => PageOneBloc(),
),
],
child: MaterialApp(...)
)

关于flutter - Flutter BLoC提供者查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59698846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com