問題タブ [freezed]
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 - Freezed で生成されたクラスで、2 つのオブジェクトが同じインスタンスであるかどうかを確認する方法は?
dart の不変データ モデリングにFreezedを使用しています。このジェネレーターは、==
演算子とを上書きしますhasCode
。これは、99% のケースで問題ありません。
しかし、長いリストの比較に時間がかかり、リストが内部で管理される特別なケースがあります。外部からのアクセスは不可能であり、リストが更新されないことは保証できるため、コンテンツではなくインスタンス自体を比較できます。
問題は、2 つのオブジェクトが同じインスタンスであるかどうかを確認する方法です。
==
演算子とメソッドを上書きするので仕方がないhasCode
場合、この場合両方の生成を無効にできますが、それでも他のコードを生成できますか?
注:こちらにも同様の質問がありますが、引き続き Freezed を使用したいと考えています。
flutter - ラッパー クラスなしでフリーズしたカスタム json コンバーター
私はフリーズ パッケージを使用して不変モデルを操作し、json_serializable パッケージによる json シリアル化の組み込み機能を利用しています。User
さまざまな共用体タイプ ( UserLoggedIn
、UserGeneral
、UserError
)を持つ単純なクラス/モデルがあります。
runtimeType
私は複数のコンストラクターを使用しており、ドキュメントで提案されているように API にキーを含めたくないので、コンバーターを作成できます(もう少し下にスクロールすると、次の文で始まります: If you don't control the JSON response,その後、カスタム コンバーターを実装できます。 )
それに基づいて、次のコンバータークラスを作成しました。
ドキュメントは、注釈を介してこのコンバーターを使用する別のクラス (ラッパー クラス) を参照するようになりました。
質問:ラッパー クラス ( ) を使用せずに、このコンバーターを使用することは可能UserModel
ですか?
理由:このラッパー クラスは、不要な別の抽象化レイヤーを追加しています (私の場合)。特にラッパークラスには他の利点/目的がなく、それを使用せずにそれを行うことができるはずだと感じているため.
json - タイプが「Asset」であるため、「images」の「fromJson」コードを生成できませんでした
私はjsonジェネレーターでフリーズを使用しています。コードの生成時にこのエラーに直面しています。
タイプが原因で の
fromJson
コードを生成できませんでした。images
Asset
コードは次のとおりです。
flutter - ブロック状態の変更時に UI が更新されない
フリーズされたパッケージでブロックライブラリを使用するのは初めてです。API からのオブジェクトのリストが表示されるシナリオがあります。これで、リスト タイルに [Marked as Fav] ボタンがあり、それをクリックするとイベントがトリガーされ、fav bool がトグルされ、状態が発行されます。
問題 : オブジェクトの値は変更されますが、それに応じて UI が更新されません。
Main.dart
ポストダーツ
ブロックダーツ
events.dart
states.dart
私が行った1つの解決策は、bool変数(モデルクラスの外部)を状態自体に保ち、favをクリックしてbool値を切り替えることでした。これは、UI の更新を再トリガーしています。