gpt4 book ai didi

Flutter BLoC 多个 BLoC 相同的小部件

转载 作者:行者123 更新时间:2023-12-02 12:43:46 28 4
gpt4 key购买 nike

我对 Flutter 和 BLoC 模式还比较陌生,所以我仍在尝试了解所有内容。

假设我有一个测验应用程序,其中有一个名为 QuestionBloc 的 BLoC它使用存储库从文件中获取问题。事件于QuestionBloc

  • FetchQuestion

状态QuestionBloc

  • QuestionEmpty
  • QuestionLoading
  • QuestionLoaded其中包含一个问题对象
  • QuestionError

然后我有另一个名为 QuestionValidatorBloc 的 BLoC它负责验证问题的答案。答案被输入到文本字段中,并且有一个提交按钮来触发验证。事件于QuestionValidatorBloc

  • ValidateQuestion

状态QuestionValidatorBloc

  • ValidateInitial
  • ValidateInProgress
  • ValidateSuccess
  • ValidateError

这相当简单。但是,现在我需要将 QuestionBloc 合并起来和QuestionValidatorBloc到同一个小部件中,因为其中一个负责获取和显示问题,另一个负责处理验证操作。我怎样才能实现这个目标?

最佳答案

我假设您正在使用 flutter_bloc 库。让 QuestionBloc 使用 StreamSubscription 监听 QuestionValidatorBloc

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());
}
});
}

...

现在您只需将 QuestionValidatorBloc 传递给 QuestionBloc 构造函数即可。

关于Flutter BLoC 多个 BLoC 相同的小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57309704/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com