Image.prefetch未自动从缓存加载[React Native/Expo]

Image.prefetch未自动从缓存加载[React Native/Expo],image,caching,react-native,prefetch,expo,Image,Caching,React Native,Prefetch,Expo,我试图了解如何缓存图像url,以便不需要重新下载。 我看了一下: 并且一直在使用Image.prefetch,如下所示: const prefetchedImages = images.map(url => { console.log('url', url) //this is correctly logging the url return Image.prefetch(url) }); Promise.all(prefetchedImages) .then(() =&

我试图了解如何缓存图像url,以便不需要重新下载。 我看了一下: 并且一直在使用Image.prefetch,如下所示:

const prefetchedImages = images.map(url => {
  console.log('url', url) //this is correctly logging the url
  return Image.prefetch(url)
});

Promise.all(prefetchedImages)
    .then(() => {
        this.setState({loaded:true})
})
这最终会将状态设置为真。然后,我在另一个组件中渲染图像,但我要确保预取的组件不会卸载。我按如下方式加载url:

<Image source={{uri: myImageUrl}} style={{width:100, height:100}} />

当我将图像加载到网格视图中时,只有本地图像会立即显示,带有URL的图像在渲染前会显示一段时间为白色。在iOS上使用cache:'force-cache'时,图像实际上是从缓存加载的,没有延迟。我想如果我使用预回迁,我不需要这样做


我是不是遗漏了什么?我想我可以像往常一样调用我的图像源,系统将知道如何获取该url的缓存图像。

我认为预取并不像仅仅因为图像在缓存中就从缓存加载图像那么简单,如果这有意义的话

看看这个帖子和这个问题


如果要保存图像并使其始终处于脱机状态,请查看。

您可以尝试实施此解决方案,但在大多数情况下,您不能依赖预回迁。我写了一篇关于这个话题的媒体报道