問題タブ [equatable]
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 - 等価オブジェクトのメンバーとしての等価オブジェクトのリスト
私は現在、resocoders clean Architectureに従っています。彼は、将来比較される基本的なデータ保持クラスにEquatableを使用することを強く推奨しています。問題は、私のクラスが次のようになることです。
問題は、コンストラクターを作成すると、IDE がリストが比較できないと不平を言うことです。プリミティブ型から作成されたオブジェクトのリストを取得して同等に機能させるために、どの関数/クラスを定義する必要があるかについて、私はちょっと迷っています。パッケージのドキュメントでもこのユースケースが省略されているようで、Equatable は不変の型でのみ機能すると述べているだけです。ただし、リストが不変であることはまったく気にしません。
編集:完成した例。現在モバイルでは、すぐにテストできません。
swift - Equatable が同じクラスの 2 つのオブジェクトの違いを検出しない
クラス Product のアイテムがあります。Product クラス内の変数を変更していますが、以下の addToCart メソッドは、変更が行われていないかのようにアイテムを扱います。idとvariationIdで商品を比較しています。私は何を間違っていますか?
ユーザーは製品に別の色を選択できます。選択すると、variationId が変更されます。
addItemToCart() メソッドは、cartItems 配列にこの商品が含まれているかどうかを確認します。製品が存在する場合、数量は 1 増加します。それ以外の場合、製品は配列に追加されます。
上記のメソッドは、variationId が異なるかどうかに関係なく、数量を更新し続けます。
flutter - Equatable と BloC の何が間違っていますか?
フラッター アプリ用に一連の BLoC を実装しましたが、その一部は機能します。このアプリは非常にシンプルで、プレイヤーがボタンを押すとゲームの状態が更新され、2 人のプレイヤー間の戦闘の状態が追跡されます。他の状態がありますが、これは機能していないビットであり、その理由がわかりません。
BattleState と呼ばれるキュビットを作成し、Equatable を拡張します。ゲーム内の 2 人のプレイヤーの現在の状態を持つオブジェクトとして、battleModel を持つ InBattle と呼ばれる状態があります。UI でボタンが押されると、battleModel が更新され、新しい InBattle 状態が新しい値で発行されます。
BattleModel はあなたが期待するものであり、いくつかの状態の詳細とそれらを更新するための関数が含まれており、equatable も実装しています
問題は、それが機能しないことです。ボタンを押して状態を変更しても、UI が更新されません。私はデバッガーを追跡しましたが、問題は、状態をチェックして更新する必要があるかどうかを確認したときに、電力値が変更されていても状態が同一であると判断したことでした。ホットリロードを実行すると、表示も適切に更新されたので、状態値が適切に更新されていることがわかります。
InBattle 状態から equatable を削除すると、すべてが期待どおりに更新されますが、状態が同じ場合にビルドをトリガーしたくないため、状態で Equatable が必要であると理解していました。このアプリケーションでは、それはあまり重要ではありません。状態は制限されており、状態変更の方法は十分に制限されているため、Equatable を削除してもアプリケーションは機能しますが、これは正しい実装方法ではないと理解しています。
Equatable を間違って使用していますか? それとも、InBattle 状態を 1 つだけ持つべきではなく、終了または勝利条件が発生するまで InBattle を何度も発行するのではなく、変更内容を反映する状態を実際に発行する必要があるという問題ですか?