首页 > 解决方案 > extraData 道具会影响平面列表的性能吗?

问题描述

我需要传递extraData给我的平面列表,但我担心它的性能,因为通过传递这个道具平面列表将在每次状态更新时重新渲染。

所以我需要知道这是否会使我的平面列表变慢?

另外我想知道最好传递这个道具的所有状态,比如:extraData={this.state}或者最好只传递一个状态,比如:extraData={this.state.number}

谢谢之前

标签: reactjsreact-native

解决方案


extraData 属性在技术上确实会影响性能,因为它会在更改时触发 FlatList 项的重新呈现。但是,文档提到:

如果您的任何 renderItem、Header、Footer 等函数依赖于 data 属性之外的任何内容,请将其粘贴在这里

所以你不用太担心,如果你需要它就实现它,如果性能成为问题,你可以使用方法和道具来改进它

extraData={this.state.number}肯定比extraData={this.state}因为您不一定要为父组件的每次渲染都重新渲染 FlatList 项目。


推荐阅读