avi*_*ash 6 state-management dart flutter bloc
这是情况——
我的 Flutter 应用仪表板屏幕有两个单独的列表
我有一个名为dashboard_bloc 和dashboard_event 的块,有两个单独的事件来分别获取pageView 数据和列表项数据以及dashboard_state。
这就是我开始的方式。
void initState() {
// TODO: implement initState
super.initState();
_dashboardBloc = DashboardBloc(repository: ProductRepositoryImpl());
_dashboardBloc.add(FetchHomeProductsEvent(token: token, productId: "1"));
_dashboardBloc.add(FetchProductsEvent(token: token));
}
Widget build(BuildContext context) {
return Scaffold(
body: BlocProvider(
create: (context) => _dashboardBloc,
child: SingleChildScrollView(
child: Column(
children: <Widget>[
Container(
child: BlocBuilder<DashboardBloc, DashboardState>(
bloc: _dashboardBloc,
builder: (context, state) {
if (state is DashboardLoadingState) {
return buildLoading();
} else if (state is DashboardErrorState) {
return buildErrorUi(state.message);
} else if (state is DashboardLoadedState) {
return buildProdctsList(state.products, context);
} else {
return Container();
}
}),
),
Container(
child: BlocBuilder<DashboardBloc, DashboardState>(
bloc: _dashboardBloc,
builder: (context, state) {
if (state is DashboardProductState) {
return Text(state.products.name);
} else if (state is DashboardErrorState) {
return buildErrorUi(state.message);
} else {
return Container();
}
}),
),
],
),
),
),
);
}
Run Code Online (Sandbox Code Playgroud)
这是集团过渡日志 -
I/flutter ( 877): Transition { currentState:DashboardStateInitialState, event: FetchHomeProductsEvent,
nextState: DashboardProductState }
I/flutter ( 877): Transition { currentState: DashboardProductState, event: FetchProductsEvent, nextState:
DashboardLoadingState }
I/flutter ( 877): Transition { currentState: DashboardLoadingState, event: FetchProductsEvent, nextState:
DashboardLoadedState }
Run Code Online (Sandbox Code Playgroud)
这里的问题是我无法呈现 FetchHomeProductsEvent 的状态。它只呈现 FetchProductsEvent 的状态。
我如何使用多个 bloc builder 处理这两个事件。任何帮助都感激不尽。
小智 1
就我个人而言,这就是我 在主页上实现我的方法 ===> 创建了一个用于显示可刷卡的块(我称之为 BannerBloc);===>创建一个用于显示产品网格的块(我称之为 ProductBloc);
这两个块仅位于我的主页文件夹内,因为我总是每页创建一个块文件夹,然后该文件夹可以包含像
归档时间: |
|
查看次数: |
4432 次 |
最近记录: |