問題タブ [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 に答える
946 参照

flutter - 場合によっては、BlocBuilder のレンダーをスキップできますか?

ブロックのある画面がありますMyBloc myBloc

画面の build メソッドでは、次のようになります。

そして私の2つの方法:

}

私の問題は、コンテンツが現在データを表示しているときです。他のことをしているときにyield MyState(type: MyStateList.loading)ロードを表示するとき (現在表示されているデータをさらにロードするなど)。両方BlocBuilderが呼び出され、条件_buildContent(context)を満たさないため何も表示されません。MyStateList.doneWorkingそしてもちろん、_buildLoading(context)以下の空のコンテンツへのロードを示しています。

内部の BlocBuilder をスキップして_buildContent(context)、現在のデータを表示し続け、さらにロードを続けることができる方法はありますか?

Container()ウィジェットにデータを含めるか、デフォルトのケースで使用するために空にする_buildContent(context)ことについて考えましたが、同じウィジェットを再レンダリングする可能性があるため、意味がありません。

お時間をいただきありがとうございます。

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

flutter - BLoC: 複数回呼び出されたリッスン コールバック

親からブロックを取得するステートフル ウィジェットがあります。

私がやりたいことは、ユーザーがボタンを押したときに、挿入された文字列が正しいかどうかを確認することです。ブロックで呼び出すメソッドは次のとおりです。

_inCheckMnemonic はサブジェクト (rxDart を使用しています) のシンクであり、outCheckMnemonic はストリームです。問題は、ブロックの 'isCorrect' メソッドが 1 回呼び出されても、listen コールバックが 2 回呼び出されることです (SnackBar が 2 回表示されます)。なぜこれが起こるのですか?

編集: Navigator.push を使用するだけで Page() に移動します。

アプリの起動時にブロックを初期化したため、ブロックを取得できます。

));

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

flutter - Flutter : プロバイダーは BLoC パターンの代わりになりますか?

フラッターの BLoC は Android の MVVM のビューモデル レイヤーのように機能するため、構成の変更時にデータが何度もフェッチされることはありません (例: 画面の向きの変更)。

プロバイダーが BLoC パターンの RxDart の機能を置き換えるのか、それとも役割の BLoC パターン自体を置き換えるのか、私は混乱しています。

また、BLoC をまったく使用しない場合、プロバイダーのみがアプリを構成の変更に耐えます。

BLoC と RxDart の組み合わせに対するプロバイダーの制限と、いくつかのユース ケースを説明してください。

0 投票する
3 に答える
8812 参照

flutter - Flutter: Unhandled Exception: Bad state: close を呼び出した後に新しいイベントを追加できない (同じケースではない)

BLoC パターンを使用して API からのデータを管理し、ウィジェットに表示しようとしています。API からデータを取得して処理し、表示することはできますが、下部のナビゲーション バーを使用していて、タブを変更して前のタブに移動すると、次のエラーが返されます。

未処理の例外: 状態が悪い: close を呼び出した後、新しいイベントを追加できません。

ストリームを閉じてから追加しようとしていることが原因であることはわかっていますが、パブリッシュ サブジェクトを破棄しないとメモリ リークが発生するため、修正方法がわかりません。

この質問はこの質問とほぼ同じかもしれませ

しかし、私はそれを実装しましたが、私の場合はうまくいかないので、別のコードで質問をして、誰かが私のケースを解決するのを手伝ってくれることを願っています. ありがとうございます。

ここに私のBLoCコードがあります:

ここに私のUIコードがあります:

完全なソース コードが必要な場合は、これがブランチサブミッション 3のレポです。

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

flutter - BlocProvider に 3 つの BLoC がある場合、同じクラスで 2 つの BLoCBuilder を使用できますか?

BlocProviderTree に 3 つの BLoC があるとします。これは、これらのブロックがクラスで使用できることを意味します。そのうちの 1 つは BlocListener として使用されますが、他の 2 つの BLoC を BlocBuilder として使用する必要があります。これは、同じページで両方の状態を構築する必要があるためです。BlockListener は子ではなく子を受け入れます。助けてください!

BlockListener は子ではなく子を受け入れます。助けてください!

アイテムの数が偶数の場合、合計で SpaceNames が必要です。合計を正しく取得していますが、スペースは他のブロックにあります。2 つの BlocBuilder を定義するにはどうすればよいですか?

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

flutter - null で呼び出された getter 'bloc'

ブロックを使用してリストビューを作成しようとしました。

これは私のブロッククラスです

MainPageList モデルは次のようになります

class MainPageList {リスト項目; アイコンを一覧表示します。
MainPageList(this.items, this.icons); }

ウィジェットクラスでブロックを呼び出そうとしました。

ストリームを割り当て、

アイコンに割り当てる

アイテムに割り当てる

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

flutter - FlutterでBLoCパターンを使用していますか?

現在、フラッターとBloCパターンを使用して状態を処理するプロジェクトに取り組んでいますが、getBlocメソッドを見つけるのに苦労しているので、助けてくれる人がいれば、とても感謝しています。

itemContainerClass:

cartListBloc クラス:

カート プロバイダー クラス:

ウェブ上のチュートリアルに従おうとしていますが、解決しませんでした。明確化または詳細については、ここにいます。

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

flutter - StreamBuilder からスナップショットにアクセスする方法は?

BLOCを使用して、API からムービーを取得しています。StreamBuilderウィジェット内のブロックにアクセスできますが、共有オプションを表示するためにmovie.slugが必要なAppBarにも共有ボタンがあります。しかし、AppBar は StreamBuilder の外にあるため、リンクを共有できません。AppBar が StreamBuilder Snapshotにアクセスできる方法はありますか?

これはページコードです:

私が間違っていることは何ですか?

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

flutter - ブロック情報を受信したときに UI が完全に更新されない

この奇妙な問題があります。クリックしたときに項目のグリッドを更新したいのです。BLoC パターンを使用して変更を管理するので、ビューはリストを受け取って表示するだけです。私の問題は、ビューが完全に更新されないことです。

説明を進める前に、ここに私のコードを示します

というわけで、2品あります。最初のアイテムをクリックすると、名前と画像が異なるアイテムが 1 つ表示されるはずです。しかし、クリックすると、予想どおり 1 つの項目が表示されますが、テキストと画像は同じです。これらの値を印刷すると、正しく更新されますが、ビューには表示されません。

私の問題の手がかりはありますか?

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

flutter - Flutter BLoC 複数の BLoCs 同じウィジェット

私は Flutter と BLoC パターンに比較的慣れていないので、まだすべてを理解しようとしています。

QuestionBlocファイルから質問を取得するためにリポジトリを使用するBLoC を呼び出すクイズ アプリがあるとします。イベントオンQuestionBloc

  • FetchQuestion

状態QuestionBloc

  • QuestionEmpty
  • QuestionLoading
  • QuestionLoaded質問オブジェクトを含む
  • QuestionError

QuestionValidatorBloc次に、質問に対する回答の検証を担当する別の BLoC を呼び出します。回答はテキスト フィールドに入力され、検証をトリガーする送信ボタンがあります。イベントオンQuestionValidatorBloc

  • ValidateQuestion

状態QuestionValidatorBloc

  • ValidateInitial
  • ValidateInProgress
  • ValidateSuccess
  • ValidateError

これはかなり簡単です。ただし、両方QuestionBlocQuestionValidatorBloc同じウィジェットに組み込む必要があります。これは、一方が質問の取得と表示を担当し、もう一方が検証アクションの処理を担当するためです。どうすればこれを達成できますか?