hoa*_*oan 13 dart flutter bloc
我对 Flutter 和 BLoC 模式比较陌生,所以我仍然试图把我的头脑围绕在所有事情上。
假设我有一个测验应用程序,其中有一个名为 BLoC 的应用程序,QuestionBloc它使用存储库从文件中获取问题。事件发生QuestionBloc
FetchQuestion状态 QuestionBloc
QuestionEmptyQuestionLoadingQuestionLoaded 其中包含一个问题对象QuestionError然后我调用了另一个 BLoC QuestionValidatorBloc,它负责验证问题的答案。答案被输入到一个文本字段中,并且有一个提交按钮来触发验证。事件发生QuestionValidatorBloc
ValidateQuestion状态 QuestionValidatorBloc
ValidateInitialValidateInProgressValidateSuccessValidateError这是相当直接的。不过,现在我需要二者结合QuestionBloc并QuestionValidatorBloc在同一个部件,因为其中一人负责获取和显示问题和其他处理验证动作。我怎样才能做到这一点?
我假设你正在使用flutter_bloc图书馆。让QuestionBloc聆听QuestionValidatorBloc使用StreamSubscription
class QuestionBloc extends Bloc<QuestionEvent, QuestionState> {
QuestionValidatorBloc questionValidatorBloc;
StreamSubscription subscription;
MainPageBloc({@required this.questionValidatorBloc}) {
subscription= questionValidatorBloc.state.listen((state) {
if (state is ValidateSuccess) {
dispatch(YourEvent());
} else if(state is ValidateError{
dispatch(AnotherEvent());
}
});
}
...
Run Code Online (Sandbox Code Playgroud)
现在您只需要将 传递QuestionValidatorBloc给QuestionBloc构造函数。
| 归档时间: |
|
| 查看次数: |
6453 次 |
| 最近记录: |