m-list-view icon indicating copy to clipboard operation
m-list-view copied to clipboard

关于行刷新的问题

Open Kpyu opened this issue 7 years ago • 5 comments

image 当触发滚动加载了另外一屏,此时的_prevRenderedRowsCount不再是0,当触发更新的诱因不是滚动,比如选中某一行的选中态,对于每个已渲染的行此时shouldupdate永远是false,listview 就不会将父级的新属性传递给子集的行对象了,导致行对象里的组件无法获取父组件的状态

Kpyu avatar Feb 09 '18 13:02 Kpyu

每个 row 应该是新的组件、管理它自己的状态,这本该就和 listview 无关吧?我觉得这样没问题。 @zhang740 有什么看法?

warmhug avatar Feb 22 '18 06:02 warmhug

确实会有问题,会导致数据源发生变更时item不会rerender,相当于数据源的 rowHasChanged 失效了,一直为false。

https://github.com/react-component/m-list-view/blob/51e2ba3e31c40a6d332c89cebe9454f3d5914384/src/ListView.js#L163

zhang740 avatar Feb 26 '18 03:02 zhang740

请问有什么解决方案吗?

lchunxiu avatar Sep 28 '18 07:09 lchunxiu

这是rmc-list-view的实现逻辑bug,用到这个组件实现的长列表都有这个问题

objHua avatar Oct 19 '18 03:10 objHua

找到这个解决方案,目前可行https://stackoverflow.com/questions/33426760/react-native-listview-not-updating-on-data-change/

darlk avatar Oct 23 '18 06:10 darlk