m-list-view
m-list-view copied to clipboard
关于行刷新的问题
当触发滚动加载了另外一屏,此时的_prevRenderedRowsCount不再是0,当触发更新的诱因不是滚动,比如选中某一行的选中态,对于每个已渲染的行此时shouldupdate永远是false,listview 就不会将父级的新属性传递给子集的行对象了,导致行对象里的组件无法获取父组件的状态
每个 row 应该是新的组件、管理它自己的状态,这本该就和 listview 无关吧?我觉得这样没问题。 @zhang740 有什么看法?
确实会有问题,会导致数据源发生变更时item不会rerender,相当于数据源的 rowHasChanged
失效了,一直为false。
https://github.com/react-component/m-list-view/blob/51e2ba3e31c40a6d332c89cebe9454f3d5914384/src/ListView.js#L163
请问有什么解决方案吗?
这是rmc-list-view的实现逻辑bug,用到这个组件实现的长列表都有这个问题
找到这个解决方案,目前可行https://stackoverflow.com/questions/33426760/react-native-listview-not-updating-on-data-change/