我正在使用Expo / RN创建一个应用,该应用的第一个屏幕加载了相当数量(〜20)张图像,这是网络通话的结果。我只在iOS中工作。
我的问题是图像加载速度非常慢,大多数图像加载大约需要一分钟,有些图像从不加载而是保持黑色。我正在使用内置的Image组件,并在源对象中提供了一个url。将移动网站加载到Safari中后,图像会立即加载。
此外,内置缓存似乎根本不起作用。加载图像并应在多处显示后,它通常根本不会出现在第二位。我尝试使用“强制缓存”无效。
我尝试了无法运行的react-native-fast-image软件包和react-native-expo-image-cache软件包,这些软件包给了我一些结果,但是内存泄漏问题和UI冻结。
有什么解决办法吗?我应该只创建自己的缓存组件吗?
编辑:图像被加载到FlatList中。每个项目均由包含的自定义组件呈现。该图像仅将url作为
<Image
style={[styles.image, smallCell ? { width: smallCellWidth } : {}]}
source={{ uri: project.imageUrl, cache: "force-cache" }}
opacity={0.85}
/>
答案 0 :(得分:0)
事实证明,最大的问题不在RN端,而是使用的API调用。我是从服务器下载原始大小的图像,而不是重新调整大小的图像,它们太大,以致于我得到了上述结果。
但是,使用强制缓存确实对我有很好的效果。