チャット セッションのリストを表示するがListView
あります (Whatsapp/Facebook Messenger に似ています) rowHasChanged
。
rowHasChanged: (r1, r2) => r1.id !== r2.id
を使用しても、更新されていないアイテムが再レンダリングされていることに気付きましたshouldComponentUpdate
。
いくつかのトレースの後、dataSource のクローンを作成する前に項目を別の方法で並べ替えたため (新しいメッセージにより項目がリストの一番上にジャンプする)、rowHasChanged
異なる行を比較していることがわかりました。そうするのは理にかなっています。
しかし、パフォーマンスの高い方法で並べ替えをサポートするためのソリューションはありませんか? WPF では、同じ問題のために、データに加えて並べ替えるものをCollectionViewSource
受け取った がありました (フィルタリングなどもサポートされていました)。
これらの冗長なレンダリングを取り除く方法を知っている人はいますか?