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