gpt4 book ai didi

flutter - 多 Bloc build 者

转载 作者:行者123 更新时间:2023-12-03 17:25:09 26 4
gpt4 key购买 nike

这是情况-
我的Flutter应用仪表板屏幕上有两个单独的列表

顶部和上的

  • 页面
  • 列表项

  • enter image description here
    我有一个名为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();
    }
    }),
    ),
    ],
    ),
    ),
    ),
    );
    }
    这是集团过渡日志-
    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 }
    这里的问题是我无法呈现FetchHomeProductsEvent的状态。它仅呈现FetchProductsEvent的状态。
    我如何使用多个块生成器处理这两个事件。
    任何帮助都感激不尽。

    最佳答案

    就个人而言,这就是我实现我的方式
    在我的主页上
    ===>创建了一个用于显示可刷卡的集团(我称其为BannerBloc);
    ===>创建一个用于显示产品网格的块(我称为ProductBloc);
    这两个块仅位于我的主页文件夹中,因为我总是在每个页面上创建一个bloc文件夹
    然后该文件夹可以包含类似

  • 横幅广告位
  • 产品群

  • my structure

    关于flutter - 多 Bloc build 者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61967951/

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