【发布时间】:2019-12-10 02:11:38
【问题描述】:
我对 Flutter 和 BLoC 模式还比较陌生,所以我仍在努力解决所有问题。
假设我有一个测验应用程序,其中有一个名为 QuestionBloc 的 BLoC,它使用存储库从文件中获取问题。
QuestionBloc上的事件
FetchQuestion
QuestionBloc 上的状态
QuestionEmptyQuestionLoading-
QuestionLoaded包含一个问题对象 QuestionError
然后我有另一个名为QuestionValidatorBloc 的 BLoC,它负责验证问题的答案。答案被输入到文本字段中,并且有一个提交按钮来触发验证。
QuestionValidatorBloc上的事件
ValidateQuestion
QuestionValidatorBloc 上的状态
ValidateInitialValidateInProgressValidateSuccessValidateError
这是相当直截了当的。但是,现在我需要将QuestionBloc 和QuestionValidatorBloc 合并到同一个小部件中,因为其中一个负责获取和显示问题,另一个负责处理验证操作。我怎样才能做到这一点?
【问题讨论】:
-
如果您只使用一个 BloC 和 2 个或更多主题怎么办?您正在使用相同的小部件。因此,最好只有一个 BLoC 和需要的流构建器
-
将两个不同的工作分成两个集团是积极的。我看到很多人一页一页地告诉一个集团,但我认为他们没有看到更复杂的用例。在这种情况下,
validation和api call是完全不同的工作,我不知道为什么使用一个更好。 -
如果我在这个集团内部需要另一个集团怎么办?我说的是在 bloc 内部使用 2+ bloc。我可能会有 2 个订阅,但我将如何嵌套呢?另一个状态监听器中的状态监听器是不好的方法:/我被卡住了