問題タブ [flutter-state]
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 - ステートフル ウィジェットのプロバイダ - パラメータ タイプの問題
RedditのDRAWプラグインに関連するすべてのアイテムメソッドを配置するクラスRedditAPIServiceがあります。
ステートレス ウィジェットでクラスのオブジェクトを作成しました。(クラス _RedditAuthState の下で State 部分を拡張)
RedditAPIService reddit = RedditAPIService();
この reddit オブジェクトをダウンストリームの複数のウィジェットで使用できるようにする必要があるため、Provider を使用してオブジェクトを公開したいと考えました。
現在、次のエラーが発生しています。
「エラー: 引数の型 'Null Function(BuildContext)' をパラメーターの型 'Widget Function(BuildContext, Widget)' に割り当てることはできません。」
私は何を間違っていますか?
flutter - StatelessWidget にメンバー変数を含めることはできますか?
をStatelessWidget
使用しScopedModel
てデータを保存する があります。ウィジェットは基本的に、チェックボックスのリストと、チェックボックスの状態を保存するためのいくつかのボタンを表示します。
ここで、ユーザーがチェックボックスを変更したかどうか、つまり、ウィジェットが表示されてからチェック/チェックを外したかどうかを追跡したいと考えています。だから私はこのようなものを追加しました:
これは機能しているようですが、 my StatelessWidget
now には独自の状態が含まれています。
状態は、UI の更新や再描画には使用されません。「閉じる」ボタンを押したときにチェックボックスに変更があるかどうかを確認するためにのみ使用されます。
StatelessWidget
がこの種の内部状態を持つことは安全ですか? それとも問題になる可能性がありますか?たとえば、ウィジェットが予期せず再作成され、内部状態が失われる可能性はありますか?
ドキュメントがこれについて非常に明確であるとは思いません。
たとえば、内部クロック駆動の状態を持っているため、または一部のシステム状態に応じて、動的に変更できるコンポジションの場合は、StatefulWidget の使用を検討してください。
しかし、これは UI に影響を与え、ウィジェットの再構築が必要な状態にのみ適用されるように思えます。
flutter - 特定のユースケースでフラッターの異なるページで同じ状態を維持する
フラッターでの状態管理に関する特定の質問があることは知っていますが、それらのどれも私のユースケースを解決していないようです。
最近、私は電子商取引に基づくアプリを構築していて、状態管理のこの真の必要性に遭遇しました。2ページありましたが、
- 1 つは製品ページで、製品をカートに追加します。
- 2 つ目はカート ページで、最近カートに追加された商品が表示されます。
ユーザーは商品をカートに追加してから、カートに移動できます。カートページでは、商品の数量を増減することもできます。
ご覧のとおり、最初は黄色のアイテムが数量 3 でカートに追加されましたが、カート ページで、ユーザーが (-) ボタンを押して数量を 1 に減らしました。ユーザーが [戻る] ボタンを押すと、次の状態になります。黄色の製品は、製品ページでは 3 のままです。ピンクの商品も同様の状況です。
したがって、通常の setState といくつかのグローバル データ構造を使用してこれを解決し、数量を追跡しようとしました。しかし、私のアプリが大きくなるにつれて、ページ全体で状態を維持するのが本当に難しくなりました。Redux、BloC パターン、プロバイダーなどのさまざまな状態管理ソリューションについて読んだことがありますが、ユースケースでそれらを使用する方法が明確ではありません。経験のある方、岩を砕いて消化を手伝っていただけますか?
これを解決する方法についてのサンプル コードと説明をいただければ幸いです。
私の問題が明確であることを願っています!