問題タブ [statefulwidget]

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 に答える
1642 参照

flutter - Flutter: 次のルートに移動するときに、前のルートの build() メソッドが呼び出されないようにする

私のフラッター アプリはstatefulWidget、最初のルートとしてスプラッシュ スクリーン ( ) を表示しています。このルートは、バックグラウンドで API を呼び出してデータを取得している間、アニメーションを表示しています。

データが受信され、アニメーションが完了すると、2 番目のルートに移動します。

を呼び出してNavigator2 番目のルートに移動すると、2 番目のルートが表示されますが、呼び出されている最初のルートの API からの応答が再び表示されます。

2 番目のルートがビルドされると、前のルートのビルド メソッドも呼び出され、不要な API 呼び出しが再度行われることが判明しました。

この動作を回避するにはどうすればよいですか?、これはバグに違いないと思いますFlutter??

現在のフロー (望ましくない): SplashRoute(build) ---> Navigator ---> HomeRoute(build)+SplashRoute(build)

必要なフロー: SplashRoute(ビルド) ---> Navigator ---> HomeRoute(ビルド)

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

flutter - BlocBuilder を使用する StatefulWidget が状態の変更時に再構築されない

Flutter (BloC パターン) を使用して、複数のカメラ フィードをストリーミングするウィジェットを作成しています。フィードをクリックすると、メイン フィードに表示されます (Google ハングアウトでは、話している人の顔が正面中央に表示され、他の人は横に小さく表示されます)。

選択したフィードを切り替えようとすると、状態 ( int) が によって期待される新しい値で生成されBlocますMapEventToState。ただし、メインCamFeedウィジェットはフィードを切り替えません。

StatefulWidgetaを返す aのこの使用法についての私の理解は、その int が変更されたときに再構築するBlocBuilder<CamSwitcherBloc, int> 必要があります。代わりに、何も起こっていないようです。最初に作成されたとき、およびその中の子の 1 つの状態が更新されbuild()たときにのみ呼び出されます。CamFeed

天文台を通じて確認したところ、予想どおり、CamSwitcherBloc.

だから- 私はそれを考えるのは間違っています:

ブロック内の MapEventToState が新しい値 (selectedCam、以下のビルダーに入力) を生成する場合build()、ウィジェットに対して呼び出す必要があります。

それが正しければ、どこで狩りを続けるかについての提案をいただければ幸いです。

ありがとう!

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

flutter - Flutter の setState() メソッドは、for ループの最後の呼び出しまでビューを更新しません

問題

Flutter を使用して並べ替えビジュアライザーを構築しようとしています。を使用してCustomPainter、ソートする整数リストの値に対応する垂直線を描画しました。アプリケーションは、ユーザーが [バブル ソート] オプションをクリックするとDropDownButton (後でソート アルゴリズムを追加する予定です)、CustomPainterキャンバスの垂直線が自動的にソートされるように設定されています。

コード

ただし、最終的にソートされたものだけがarrキャンバスに視覚化され、何らかの理由ですべての中間ステップがスキップされます。しかし、ログはリストの更新を示しています。

スクリーンショット

ランダムリストの初期画面 ドロップダウンボタン のバブルソートをクリック ソートされたリスト

このsleep()機能はアニメーションをエミュレートするためだけに追加されたものであり、この問題が解決されたら、適切なアニメーションに置き換える予定です。また、アプリケーションが少し醜いことは承知していますが、UI を磨く前にロジックを正しく取得したいと考えています。