問題タブ [flutter-bloc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flutter-bloc - 状態は同じでも状態の内容が異なる場合に flutter_bloc を使用して UI を変更する方法
flutter_bloc パッケージの BlocBuilder を使用して、状態の変化に対応しています。
問題:複数の連続したイベントにより、連続した BreathalyzerWarmingUp 状態が生成されますが、連続するカウントダウン値は異なります (例: 3、2、1)。ただし、別の状態への実際の遷移はないため、BlocBuilder は後続の状態を無視し、UI はスタックして最初のカウントダウン値のみを表示します。
画面が次のように変化することを期待します。
取得中:
助言がありますか?
flutter - Flutterブロックパターンで譲れない状態
flutter_bloc パッケージを使用して、フラッター ブロック パターンでテスト アプリを構築しています。問題は、Event1 の状態のみがレンダリングされ、コードは mapEventToState で実行されることです。Event2 をトリガーすると、mapEventToState の対応する print ステートメントが実行されるため、yield ステートメントに問題があると思います。
page_bloc.dartのmapEventTOState関数
page_state.dartは次のとおりです。
page_event.dartは以下のとおりです。
ブロックビルダーは次のとおりです。
Scaffold のフローティング アクション ボタンは次のとおりです。
また、足場内の別のウィジェットは次のとおりです。
flutter - flutter_bloc へのグローバルな依存関係
flutter_blocを使用して Flutter でアプリを実装する際に問題があります。中心的な概念は理解しましたが、例やガイドがない「エッジケース」を見つけました(少なくとも見つけることができました):
(問題を単純化します) をAuthBloc
管理すると呼ばれるブロックがありApp
ます。状態が のNotAuthenticated
場合、アプリは を表示する必要がありますが、状態が のLoginScreen
場合、アプリは を表示Authenticated
する必要がありHomeScreen
ます。内部には 4 つのブロックがあり、各ブロックには状態とイベントがありますが、API からデータを取得するためHomeScreen
に、すべてのブロックに依存関係があります。Repositories
Repositories
API リクエストを行うにはトークンが必要です。ここで最初の問題が発生しました。すべてのリポジトリからトークンを取得するにはどうすればよいですか? を使用しUserRepository
てトークンを保存する場合、依存関係として各リポジトリに渡す必要があります (おそらく動作しますが、正しい方法ではないと思います)。では、これを管理する正しい方法は何でしょうか?
2番目の問題は次のとおりです。
どういうわけか、すべてのリポジトリ クエリでトークンを取得できた場合、トークンが取り消されるとどうなりますか? アプリは に戻る必要があり、そのためにはイベント (たとえば ) を介してLoginScreen
に通知する必要があります。はその状態を に変更し、 を再構築します。しかし、問題は次のとおりです。他のブロックまたはリポジトリから通知するにはどうすればよいですか? 私が思いついた最初のアイデアは、依存性注入によるものです。コンストラクター内の他のすべてのブロックに AuthBloc を渡すことができるため、リポジトリ リクエストが期限切れのトークンを返したときに、を呼び出すことができます。しかし、繰り返しになりますが、ブロックがたくさんある場合は、ブロックごとにそれを行う必要があります。それで、これを行う正しい方法は何ですか?AuthBloc
InvalidTokenEvent
AuthBloc
NotAuthenticated
LoginScreen
AuthBloc
XBloc
AuthBloc.add(InvalidTokenEvent)
助けてくれてありがとう!
flutter - 非同期終了後のFlutterブロック更新オブジェクト状態
私はフラッターとブロックパターンを扱っています。Todo チュートリアル ( https://bloclibrary.dev/#/fluttertodostutorial?id=bloc ) は、ブロックについて非常によく説明しています。
しかし、「オブジェクトの同期が完了/実行中」に関する情報を使用してサンプルアプリを拡張したいとは思いません。私はそれがどのように機能するべきかについての私の考えで画像を添付しました。
次の関数は似たようなことをしていると思います-完全なブール値を変更します。しかし、関数を変更して、非同期呼び出しの後に 1 つの obj の bool を変更し、UI に直接起動する方法。obj 1 の後、obj 2 に移動します。
あなたが私の説明を理解し、私を助けてくれることを願っています:-)