antd-mobile ListView长列表数据更新时,如何避免陷入长尾词的更新陷阱?
- 内容介绍
- 文章标签
- 相关推荐
本文共计921个文字,预计阅读时间需要4分钟。
遇到的难题 + ListView 这个组件我真的觉得很头疼。好看不容易看,文档看完头脑晕。然后遇到一个需求,用户有一个点赞操作,问题出现了,点赞完成数据更新后 ListView 不刷新。
遇到的问题
listView这个组件我真的是看文档看得脑壳疼。好不容易看文档写完长列表数据展示了。然后遇到一个需求,即用户有一个点赞操作,问题出现了,点赞完数据更新之后listView不刷新列表。
解决列表不刷新问题
官方的demo里有这么一个函数 rowHasChanged ,这个函数返回true或者false,如果是true,则认为这行数据改变了,然后刷新这行数据,也就更新了列表。
// 官方 constructor(props) { super(props); ... const dataSource = new ListView.DataSource({ ... rowHasChanged: (row1, row2) => row1 !== row2 // 这个方法 }); }
然后就各种百度,最后在github上看到这个 issue。
本文共计921个文字,预计阅读时间需要4分钟。
遇到的难题 + ListView 这个组件我真的觉得很头疼。好看不容易看,文档看完头脑晕。然后遇到一个需求,用户有一个点赞操作,问题出现了,点赞完成数据更新后 ListView 不刷新。
遇到的问题
listView这个组件我真的是看文档看得脑壳疼。好不容易看文档写完长列表数据展示了。然后遇到一个需求,即用户有一个点赞操作,问题出现了,点赞完数据更新之后listView不刷新列表。
解决列表不刷新问题
官方的demo里有这么一个函数 rowHasChanged ,这个函数返回true或者false,如果是true,则认为这行数据改变了,然后刷新这行数据,也就更新了列表。
// 官方 constructor(props) { super(props); ... const dataSource = new ListView.DataSource({ ... rowHasChanged: (row1, row2) => row1 !== row2 // 这个方法 }); }
然后就各种百度,最后在github上看到这个 issue。

