我有一个ListView
显示聊天会话列表(类似于 Whatsapp/Facebook Messenger),其中包含以下内容rowHasChanged
:
rowHasChanged: (r1, r2) => r1.id !== r2.id
我注意到未更新的项目正在重新渲染,即使我使用shouldComponentUpdate
.
经过一些跟踪后,我发现因为我在克隆数据源之前对项目进行了不同的排序(新消息使项目跳转到列表的顶部),rowHasChanged
所以正在比较不同的行。这样做是有道理的。
但是没有解决方案来支持以高性能方式进行排序吗?在 WPF中,由于相同的问题(也支持过滤等),除了数据之外,我们还CollectionViewSource
收到了一些要排序的内容。
有谁知道摆脱这些冗余渲染的方法?