問題タブ [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.

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

ios - Equatable for Diffing に準拠したプロトコル

ここに小さなチャットアプリがあります。

私は2種類のメッセージを持つことができます: - テキスト - ビデオ

次のように JSON をデコードする際にポリモーフィズムを使用しています。

私は次のように MVVM アプローチも使用しています。

DifferDiffingようなライブラリを使用できるようにするには、プロトコルに準拠する必要があります。ChatViewModelEquatable

ここでの問題は、case let (.loaded(l), .loaded(r)): return l == rMessageプロトコルとして に準拠していないことEquatableです。

Equatable 好きなように合わせる

のエラーProtocol 'Message' can only be used as a generic constraint because it has Self or associated type requirementsを生成しますMessageWrapper:

これを解決するためのクリーンな方法を持つためのアイデアや提案はありますか? についての投稿を見ましType Erasureたが、いくつかのテストの後、実際に問題が解決されているかどうかはわかりません。

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

flutter - プロパティを Equatable のスーパー コンストラクターに渡す

私は Flutter と Dart にまったく慣れていないので、更新されたバージョンの Equatable を拡張するクラスを書き直す方法を理解するのに苦労しています。

これは Equatable 0.4.0 で動作します:

ただし、Equatable 1.0.2 に更新すると、次の場所でエラーがスローされますsuper(properties)

位置引数が多すぎます: 0 が必要ですが、1 が見つかりました。

余分な引数を削除してみてください。

propertiesEquatable 1.0.2 でスーパー コンストラクターに渡す方法がわかりません