Flutter 为什么我应该使用带有日历的Bloc而不是静态地图?

Flutter 为什么我应该使用带有日历的Bloc而不是静态地图?,flutter,bloc,Flutter,Bloc,在Flatter中,我想使用来自的日历来设置班次并为其分配员工 为了做到这一点,我使用了来自的本地数据库 我在网上看到了一些教程,例如,将数据库与Bloc技术相结合的教程 对于我的日历,我需要一个Map来控制事件。到目前为止,我使用了一个静态映射,我将在不同的类中使用它,例如shift_表单和shift_日历 集团实施将以如下方式开始: 类ShiftBloc扩展了Bloc Yes it 是 但是,我应该如何为我从Firestore获得的流实现Blocs作为映射而不是列表 顺便说一句,我使用的是这

在Flatter中,我想使用来自的日历来设置班次并为其分配员工

为了做到这一点,我使用了来自的本地数据库

我在网上看到了一些教程,例如,将数据库与Bloc技术相结合的教程

对于我的日历,我需要一个
Map
来控制事件。到目前为止,我使用了一个静态映射,我将在不同的类中使用它,例如shift_表单和shift_日历

集团实施将以如下方式开始:

类ShiftBloc扩展了Bloc Yes it
是

但是,我应该如何为我从Firestore获得的流实现Blocs作为映射而不是列表


顺便说一句,我使用的是这个结构。

一般来说,任何事情都不“必须”使用BLoC

BLoC和其他状态管理策略旨在使处理应用程序多个部分同时需要的数据变得更容易,并且在数据发生变化时需要更新

对于简单的小部件,对数据的依赖性很低,一个简单的
setState
应该就足够了,使用它没有什么错

有些人只是将状态管理用于一切,而不停地分析手头的问题,这使得代码更加混乱

如果您的
Map
是本地的,如果您在多个地方需要它,只需在本地使用它,而不要将其用作全局变量,因为这会使测试更加困难


记住,BLoC只是一个类,其中流作为输出,同步作为输入,Firebase Firestore类已经为您提供了一个流,因此您的BLoC可能只是一个流转换,将Firestore上的数据调整到您的地图。我真的不能说如何做到这一点,因为我不知道你的数据

这太棒了。是的,HashMap将在多个类中使用,因此我必须使其成为静态的。另外,我创建了一个小项目来解决这个问题,并在Github中使用。对于HashMap示例,选择bloc_with_map分支。不过我有个小问题。当我手动更改班次的(文档)属性时,代码无法识别动态状态更改。UI仅在我重新启动应用程序后更新。我发现问题出在这一行`列表获取道具=>[shiftsMap];`在班里,你的州。省道。有什么建议吗?另外,测试项目中的结构取自以下教程:我现在无法查看它,但请尽量避免使用全局变量,改用Provider,否则您的测试可能更难实现。