ios - FlatList 使用 Redux 重新渲染

标签 ios react-native redux

我正在使用 PureComponent 来渲染我的 FlatList 的项目,当我使用 FlatList 并在数据中将本地状态传递给它时,渲染效果很好,我没有浪费的重新渲染。
但是,当我将 FlatList 与数据中的 redux 存储中的数组一起使用时,如果我向下滚动,则每次调用 onReachEnd 时,重新渲染都会很好地工作。但是当我没有更多的数据要加载并且我向上滚动时,我的所有项目都会重新渲染一个。

就像我的整个 list 都丢失了。

我在数据中使用与本地状态完全相同的列表,它完美地工作!
只有当我尝试让 FlatList 和 Redux 一起工作时才会出现这个问题

<FlatList
   ref={(view) => this.list = view}
   data={this.props.requestsList}
   style={{flex: 1}}
   keyExtractor={(item) => String(item.emitter.id)}
   renderItem={this._renderRequestsItems}
   onEndReachedThreshold={0.5}
   onEndReached={!this.props.lastPage ? this._endReached : null}
   ListFooterComponent={reloadIndicator}
   ListHeaderComponent={this._getHeaderComponent}
   ListEmptyComponent={this._getEmptyComponent}
/>

最佳答案

使用 extraData您的 FlatList 组件上的属性,在您的情况下,额外的数据可以来自 Prop ,所以它看起来像

extraData={this.prop}

关于ios - FlatList 使用 Redux 重新渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57468556/

相关文章:

ios - AppStore 版本上经过全面测试的应用程序崩溃

objective-c - NSMutableDictionary 不检索对象

android - react native 动画

react-native - 无法读取未定义的属性 'oneOfType'

ios - UIImageView 忽略宽度/高度约束

ios - 为什么在主队列更新 UI 后私有(private)队列调度 _async 更新 UI?

javascript - React-Native:AsyncStorage.getItem 不起作用。我已经从react-native-community安装了AsyncStorage

javascript - Redux - 在 React 组件的构造函数中使用 bindActionCreators 有什么缺点吗?

javascript - 将 Dispatch 传递给 onClick 事件 Redux

javascript - 在 reducer 中使用变量作为对象键