【发布时间】:2019-12-21 04:33:10
【问题描述】:
我正在使用 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}
/>
【问题讨论】:
-
我能看到加载图片的代码吗?
-
@hongdevelop 加了,不是很多
-
您说要装载 20 件。你如何加载它们?
-
@hongdevelop 只使用内置的 Image 组件
-
去掉调整宽度的代码是不是也一样?
标签: react-native expo react-native-ios