問題タブ [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 投票する
2 に答える
15185 参照

flutter - Flutter listen Bloc 状態を Other Bloc から

こんにちは、他のブロックからブロックの状態を聞き取ろうとしています。このパッケージを使用していますhttps://pub.dev/packages/bloc

UserBlocからAuthBlocをリッスンしたいのですが、状態がAuthenticationAuthenticatedの場合、UserBlocはイベントを発生させる必要があります。

今のところ、私はこの問題を抱えています:デバッグ中にstateAuthを出力しようとすると、次のように返されます:

ただし、stateAuth は AuthenticationAuthenticated であり、常に false を返します。

BlocState From Other Bloc クラスをリッスンする方法はありますか?

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

flutter - Flutter_bloc を使用して通知を表示する方法

私は flutter_bloc パッケージが初めてです。flutter_bloc パッケージを使用して通知アラートを表示する方法。これは、ブロックを使用せずに行った例です。

0 投票する
6 に答える
39535 参照

flutter - BlocProvider.of() が Bloc を含まないコンテキストで呼び出されました。

まず、BLoC がどのように動作するか、その背後にある考え方を知っており、コンストラクターとの違いを知っていBlocProvider()ますBlocProvider.value()

簡単にするために、私のアプリケーションには次のようなウィジェット ツリーを含む 3 つのページがあります。

App()=> LoginPage()=> HomePage()=>UserTokensPage()

ユーザーなどにログインする必要があるため、LoginPage()アクセスできるようにします。そのために、次のようにウィジェットでビルダーをラップします。UserBlocLoginPage()App()

それは明らかにうまく機能します。次に、ユーザーが正常にログインすると、ユーザーは に移動しHomePageます。ここで、自分の 2 つの異なるブロックにアクセスする必要があるため、HomePage既存のものをさらにMultiBlocProvider渡しUserBloc、 という名前の新しいブロックを作成しますDataBloc。私はこのようにします:

これも機能します。HomePage ユーザーからに移動すると、問題が発生しますUserTokensPage。コンストラクターで渡したいUserTokensPage既存のものが必要です。私はこのようにします:UserBlocBlocProvider.value()

ボタンを押して移動するMyTokensPageと、次のメッセージでエラーが発生します。

私は何を間違っていますか?PopupMenuButtonどういうわけかブロックを失うウィジェットを抽出したからですか?何が間違っているのかわかりません。

0 投票する
2 に答える
3416 参照

flutter - BlocProvider.of() が Bloc タイプの Bloc を含まないコンテキストで呼び出されました

エラー: I/flutter ( 5919): ══╡ 例外がウィジェット ライブラリーによってキャッチされました═══════════════════════════ I/flutter (5919): 次のアサーションがビルド ビルダーにスローされました: I/flutter (5919): BlocProvider Bloc タイプの Bloc を含まないコンテキストで .of() が呼び出されました。I/flutter (5919): I/flutter (5919): BlocProvider.of>() に渡されたコンテキストから始まる祖先が見つかりませんでした。私/フラッター ( 5919):
これは、使用したコンテキストが BlocProvider の上のウィジェットに由来する場合に発生する可能性があります。I/flutter ( 5919): 使用されたコンテキストは: BlocBuilder, dynamic>(dirty, state: I/flutter ( 5919): _BlocBuilderBaseState, dynamic>#55a7d(lifecycle state: created)) I/flutter ( 5919): 関連するエラーの原因となったウィジェット: I/flutter (5919): MaterialApp /lib/main.dart:35:12

これが私のメインです

MaterialApp ウィジェット

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

flutter - Flutter Bloc は状態を再構築していません

flutter_bloc パッケージを使用して、この単純なブロックを実装しました。

このイベントで:

そしてこの状態:

私のUIは次のようになります。

残念ながら、MaterialButton を使用して Event を追加すると、Load() 状態は無視されます。UI は Load 状態を再構築しません。出力は次のとおりです。

I/flutter (1955): 降伏状態: 「負荷」のインスタンス

I/flutter (1955): 降伏状態: 「Init」のインスタンス

I/flutter (1955): ビルド状態: 「Init」のインスタンス

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 に移動します。

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

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

flutter - ブロックを提供する正しい方法は何ですか?

こんにちは、フラッターの初心者です。私の質問は、ブロックを提供する正しい方法は何ですか? 名前付きルートセクションのメインファイルにテーマを提供することにしましたが、問題は、他のブロック内にブロックが必要な場合に提供できないことです。これが私のメインファイルルートセクションです。問題は、たとえば、AssetDevicesPageBlocブロックをassetPageブロックに提供したいのですが、アクセスできないため、どうすればそのようなことを行うことができますか。ブロックを間違った方法で提供していますか? 初めて、すべてのブロックを 1 か所で提供してから、各ウィジェットに blockprovider.value を使用したかったのですが、検索したところ、リソースの使用方法が間違っていることがわかりました。助けてください。ありがとう