我正在使用Expo/RN创建一个应用程序,其中第一个屏幕加载了相当数量(~20)的图像,作为网络调用的结果。我只在iOS中工作。
我的问题是图像加载非常慢,大多数需要一分钟左右的时间加载,有些图像从来没有加载过,但仍然是黑色的。我使用的是内置Image组件,在源对象中提供了一个url。在Safari中加载移动网站时,图像会立即加载。
此外,内置的缓存似乎根本不起作用。当一个图像已经加载并且应该在多个位置显示时,它通常根本不会出现在第二个位置。我试过使用"force-cache“,但没有效果。
我已经尝试了包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}
/>发布于 2019-08-16 01:58:39
事实证明,最大的问题不是在RN端,而是所使用的API调用。我从服务器上下载原始大小的图片,而不是重新调整大小的图片,它们太大了,我得到了上面的结果。
然而,使用force-cache对我来说确实有很好的效果。
https://stackoverflow.com/questions/57497722
复制相似问题