【问题标题】:Two successive BLOCs in flutter_blocflutter_bloc 中的两个连续 BLOC
【发布时间】:2021-08-22 05:55:03
【问题描述】:

我想将我的 BLOC 分成两个 BLOC:

  1. 做准备工作的人
  2. 主要的

我们称之为 PrepBloc 和 MainBloc。像这样将一个放在另一个里面是否合理:

BlocProvider<PrepBloc>(
          create: ......,
          child: AppView()
        )
class AppView extends StatelessWidget {
  Widget build(BuildContext context) {
    return BlocBuilder<PrepBloc, PrepState>(
      builder: (context, state) {
        if (state is ReadyState) {
          return BlocProvider<MainBloc>(...);
        }
        else if (state is NotReadyState) {
          return PrepPage();
        }
      }
    );
  }
}

我知道有 MultiBloc 的东西,但在我看来它有点复杂并产生大量代码。

【问题讨论】:

    标签: flutter bloc flutter-bloc


    【解决方案1】:

    这绝对是正确的做法!

    如果孩子们需要访问两个集团,您将使用 MultiBlocProvider,但在您的情况下,这不是您所追求的。我猜 PrepPage 没有必要访问 MainBloc。

    【讨论】:

    • 谢谢你,罗伯特! (PrepPage/Bloc 只是一些关于登录等的东西)
    • 太棒了。如果您希望为就绪状态返回一个您可能已在单独文件中定义的小部件,您会看到它是如何有意义的。如果您在该小部件中以 BlocProvider 开头,那么它不会感觉像特殊的嵌套块。您也可以将它们视为 StatefulWidget 的,以及您毫无疑问嵌套的那些 ? 如果您对答案感到满意,请接受答案。
    • 这是一个非常全面的答案。我是新来的,没有注意到这个关于接受的按钮。
    猜你喜欢
    • 2020-08-21
    • 2020-09-10
    • 2020-09-03
    • 2020-12-08
    • 2020-03-12
    • 2021-11-24
    • 2020-10-20
    • 1970-01-01
    • 2020-08-17
    相关资源
    最近更新 更多