我正在使用 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/