問題タブ [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.

0 投票する
1 に答える
78 参照

flutter-bloc - 状態は同じでも状態の内容が異なる場合に flutter_bloc を使用して UI を変更する方法

flutter_bloc パッケージの BlocBuilder を使用して、状態の変化に対応しています。

問題:複数の連続したイベントにより、連続した BreathalyzerWarmingUp 状態が生成されますが、連続するカウントダウン値は異なります (例: 3、2、1)。ただし、別の状態への実際の遷移はないため、BlocBuilder は後続の状態を無視し、UI はスタックして最初のカウントダウン値のみを表示します。

画面が次のように変化することを期待します。

取得中:

助言がありますか?

0 投票する
1 に答える
1610 参照

flutter - Flutterブロックパターンで譲れない状態

flutter_bloc パッケージを使用して、フラッター ブロック パターンでテスト アプリを構築しています。問題は、Event1 の状態のみがレンダリングされ、コードは mapEventToState で実行されることです。Event2 をトリガーすると、mapEventToState の対応する print ステートメントが実行されるため、yield ステートメントに問題があると思います。

page_bloc.dartのmapEventTOState関数

page_state.dartは次のとおりです。

page_event.dartは以下のとおりです。

ブロックビルダーは次のとおりです。

Scaffold のフローティング アクション ボタンは次のとおりです。

また、足場内の別のウィジェットは次のとおりです。

0 投票する
1 に答える
398 参照

flutter - flutter_bloc へのグローバルな依存関係

flutter_blocを使用して Flutter でアプリを実装する際に問題があります。中心的な概念は理解しましたが、例やガイドがない「エッジケース」を見つけました(少なくとも見つけることができました):

(問題を単純化します) をAuthBloc管理すると呼ばれるブロックがありAppます。状態が のNotAuthenticated場合、アプリは を表示する必要がありますが、状態が のLoginScreen場合、アプリは を表示Authenticatedする必要がありHomeScreenます。内部には 4 つのブロックがあり、各ブロックには状態とイベントがありますが、API からデータを取得するためHomeScreenに、すべてのブロックに依存関係があります。Repositories

RepositoriesAPI リクエストを行うにはトークンが必要です。ここで最初の問題が発生しました。すべてのリポジトリからトークンを取得するにはどうすればよいですか? を使用しUserRepositoryてトークンを保存する場合、依存関係として各リポジトリに渡す必要があります (おそらく動作しますが、正しい方法ではないと思います)。では、これを管理する正しい方法は何でしょうか?

2番目の問題は次のとおりです。

どういうわけか、すべてのリポジトリ クエリでトークンを取得できた場合、トークンが取り消されるとどうなりますか? アプリは に戻る必要があり、そのためにはイベント (たとえば ) を介してLoginScreenに通知する必要があります。はその状態を に変更し、 を再構築します。しかし、問題は次のとおりです。他のブロックまたはリポジトリから通知するにはどうすればよいですか? 私が思いついた最初のアイデアは、依存性注入によるものです。コンストラクター内の他のすべてのブロックに AuthBloc を渡すことができるため、リポジトリ リクエストが期限切れのトークンを返したときに、を呼び出すことができます。しかし、繰り返しになりますが、ブロックがたくさんある場合は、ブロックごとにそれを行う必要があります。それで、これを行う正しい方法は何ですか?AuthBlocInvalidTokenEventAuthBlocNotAuthenticatedLoginScreenAuthBlocXBlocAuthBloc.add(InvalidTokenEvent)

助けてくれてありがとう!

0 投票する
1 に答える
165 参照

flutter - 非同期終了後のFlutterブロック更新オブジェクト状態

私はフラッターとブロックパターンを扱っています。Todo チュートリアル ( https://bloclibrary.dev/#/fluttertodostutorial?id=bloc ) は、ブロックについて非常によく説明しています。

しかし、「オブジェクトの同期が完了/実行中」に関する情報を使用してサンプルアプリを拡張したいとは思いません。私はそれがどのように機能するべきかについての私の考えで画像を添付しました。

フロー

次の関数は似たようなことをしていると思います-完全なブール値を変更します。しかし、関数を変更して、非同期呼び出しの後に 1 つの obj の bool を変更し、UI に直接起動する方法。obj 1 の後、obj 2 に移動します。

あなたが私の説明を理解し、私を助けてくれることを願っています:-)