代码之家  ›  专栏  ›  技术社区  ›  Let's_Create

如何使用flutter_blocs在树上传递数据?

  •  0
  • Let's_Create  · 技术社区  · 4 年前

    在过去的几天里,我一直被这件事所困扰。

    所以我的用例是, A->B->C->D

    当D发生变化时,更新A中的一些数据。 A、 B、C、D是不同的屏幕。

    现在我知道我们可以使用MultiBlocProvide为D提供两个提供者。 但我使用的是推送姓名路线, 不知道如何在这里使用区块进行沟通。

    routes: {
      Routes.ScreenA: (context) => _getScreenA(),
      Routes.ScreenB: (context) => _getScreenB(),
      Routes.ScreenC: (context) => _getScreenC(),
      Routes.ScreenD: (context) => _getScreenD(),
    }
    
      _getScreenA() {
        return BlocProvider<ScreenABloc>(
            create: (context) =>
                ScreenABloc(),
            child: ScreenARoute());
      }
    
      _getScreenB() {
        return BlocProvider<ScreenBBloc>(
            create: (context) => ScreenBBloc(),
            child: ScreenBRoute());
      }
    
      _getScreenC() {
        return BlocProvider<ScreenCBloc>(
            create: (context) => ScreenCBloc(),
            child: ScreenCRoute());
      }
    
      _getScreenD() {
        return BlocProvider<ScreenDBloc>(
            create: (context) => ScreenDBloc(),
            child: ScreenDRoute());
      }
    

    还检查了Todo's的示例,但现在确定如何在此处插入。

    0 回复  |  直到 4 年前
        1
  •  0
  •   HasilT    4 年前

    而不是用 BlocProvider 把你的 MaterialApp 在你的 main.dart 文件与 MultiBlocProvider 然后初始化所有必需的 bloc 在那里上课,它们将在你的申请表上随处可见。如果你打算定义相同 集团 在不同的路由上-由于您没有使用同一个实例,因此会出现一些数据不一致 集团 .