1

Angular のリストにCdkVirtualForOfを実装し、その templateCacheSize を 150 に設定してパフォーマンスを向上させました。

しかし、データを並べ替えてスクロールすると、キャッシュされたテンプレートがビュー内のアイテムを台無しにします。つまり、データを並べ替えると、リストが正しく更新されます。次に下にスクロールしますが、もう一度上にスクロールすると、テンプレート キャッシュが原因でリストのエントリが正しくありません。

この「問題」は、こちらの GitHub で報告されています。

テンプレートキャッシュを無効にしてみましたが、これで問題は解決しましたが、リストのパフォーマンスが非常に悪くなり、ほとんど使用できなくなりました。

そう...

これをどのように扱うのですか?cdkVirtualFor テンプレート キャッシュを更新する方法はありますか? または、cdkVirtualFor で並べ替えを機能させる別の方法はありますか?

ミニマルリプロを作ってみたのですが、有効にしたのにテンプレートキャッシュが動きません。参照用にここに残します。または、再現を機能させる方法を誰かに教えてもらえれば。

https://stackblitz.com/edit/angular-ivy-wzfnem?file=src%2Fapp%2Fapp.component.html

4

1 に答える 1

1

私は何が間違っているかを理解しました。上記の Github の問題からのコメントに従い、提案されているように、代わりに ngOnInit ロジックを ngOnChanges に移動しましたこれにより、テンプレートが正しく「更新」されない問題が修正されます。

于 2020-08-17T08:16:02.783 に答える