簡體   English   中英

Flutter BLoC 多個 BLoC 相同的小部件

[英]Flutter BLoC multiple BLoCs same widget

我對 Flutter 和 BLoC 模式比較陌生,所以我仍然試圖把我的頭腦圍繞在所有事情上。

假設我有一個測驗應用程序,其中有一個名為QuestionBloc的 BLoC,它使用存儲庫從文件中獲取問題。 QuestionBloc事件

  • FetchQuestion

QuestionBloc

  • QuestionEmpty
  • QuestionLoading
  • QuestionLoaded包含一個問題對象
  • QuestionError

然后我有另一個名為QuestionValidatorBloc BLoC,它負責驗證問題的答案。 答案被輸入到一個文本字段中,並且有一個提交按鈕來觸發驗證。 QuestionValidatorBloc事件

  • ValidateQuestion

QuestionValidatorBloc

  • ValidateInitial
  • ValidateInProgress
  • ValidateSuccess
  • ValidateError

這是相當直接的。 但是,現在我需要將QuestionBlocQuestionValidatorBloc合並到同一個小部件中,因為其中一個負責獲取和顯示問題,另一個負責處理驗證操作。 我怎樣才能做到這一點?

我假設您正在使用flutter_bloc庫。 QuestionBlocQuestionValidatorBloc使用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());
      }
    });
  }

...

現在您只需將QuestionValidatorBloc傳遞給QuestionBloc構造函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM