Reactjs ReactNative Expo应用程序性能非常慢

Reactjs ReactNative Expo应用程序性能非常慢,reactjs,react-native,Reactjs,React Native,我是个新手,目前正在开发一个应用程序 所有应用程序都应该包含 1-旋转木马 2-12类卡片 3-1分类页面包含带有图像和一些文本的卡片(卡片数据将从API获取) 我使用的是Expo应用程序,但以iPhone 6为例,它的性能非常慢 在iPhone7及更高版本中也可以 滚动性能不好 导航性能很差 世博项目二维链接:https://expo.io/@OV3R控制/Weddi Github项目链接:https://github.com/Ov3rControl/Weddi (随时拉取请求并为改进其a性能

我是个新手,目前正在开发一个应用程序 所有应用程序都应该包含

1-旋转木马

2-12类卡片

3-1分类页面包含带有图像和一些文本的卡片(卡片数据将从API获取)

我使用的是Expo应用程序,但以iPhone 6为例,它的性能非常慢 在iPhone7及更高版本中也可以

滚动性能不好
导航性能很差

世博项目二维链接:
https://expo.io/@OV3R控制/Weddi

Github项目链接:
https://github.com/Ov3rControl/Weddi
(随时拉取请求并为改进其a性能做出贡献) 如何提高我的React本机应用程序性能?我在这里做错了什么导致了性能问题

**编辑1:我得到Warrnings 1-覆盖fontFamily样式属性预处理器

                    2- Each child in a list should have a unique "key" prop   

                    3- VirtualizedList: You have a large list that is slow  
要更新-请确保渲染项函数渲染遵循React性能最佳实践(如PureComponent、shouldComponentUpdate)的组件**


编辑2:React Dev Tools

VirtualizedList:您有一个很大的列表,但速度很慢
使用分页来解决此问题。限制数据数组大小以解决此问题。Flatlist以一个为单位渲染元素,如果有很多元素,那么性能会很慢。还可以尝试使用平面列表的一些优化程序,如:

removeclipped子视图
initialNumToRender
maxToRenderPerBatch
windowSize
以及布局高度和宽度预计算(如果是静态的):


我发现您缺少平面列表中的KeyExtractor。请看这里:非常感谢,我这样做了,警告也被删除了,但在性能方面,应用程序仍然会减慢速度,还有其他想法吗?:)我无法在Expo上运行你的应用程序。另外,尝试删除图像并测试性能。这可能会影响渲染过程。但请记住,在Expo上运行的应用程序性能总是比独立应用程序差。iPhone6只有1GB内存和32位处理器,所以在Expo上测试应用程序不是一个好主意。我正在考虑用它来取代平面列表,因为他们说它是为性能而设计的。你认为呢?你绝对可以。但是一定要仔细检查那些未解决的问题。由于flatlist附带react native,但github.com/Flipkart/recyclerlistview是一个可能存在问题的第三方库。如果这符合您的经验,那么您就可以开始了。另外请注意,库中已经记录了:
预先计算高度,以便RecyclerListView可以一次计算布局,而不是等待绘图发生
。我在上面的评论中已经说过,您可能需要计算高度和宽度,并将其提供给flatlist,以实现快速渲染。如何计算卡的高度?是否有相关教程?如果我这样做了,它会在所有的移动屏幕上都有响应吗?感谢这意味着提供静态高度和宽度。不要使用onLayout函数,因为它每次都会被调用,如果您在像flatlist这样的渲染器列表中使用它,每当渲染单个列表时,它都会被调用everysingle time。这将导致大量内存问题<代码>添加getItemLayout可以极大地提高数百项列表的性能。如果指定ItemSeparatorComponent,请记住在偏移量计算中包括分隔符长度(高度或宽度)。