React-Native <img source="{url}"/>-缓存图像的路径

时间:2019-01-29 14:19:14

标签: android ios react-native caching

也许我的问题听起来很愚蠢,但这是...

  

我们如何获得缓存图像的路径(在iOS和Android中)?

这是我的用例::我在我的应用程序上显示了一个视图,该视图列出了来自网络的图像->我从Google客户搜索API中根据用户提供的关键字获取了一系列网址。 ..

<FlatList
   style={{ width: '100%' }}
   data={this.state.suggestions}
   numColumns={2}
   renderItem={(img) => {
     return (
         <TouchableOpacity onPress={() => this.selectImageHandler(img.item)} >
            <Image source={{ uri: img.item.link }} />
         </TouchableOpacity>
       )
    }}
    keyExtractor={(item, index) => index.toString()}
/>

结果如下:

enter image description here

然后用户按下图像以将其选中,然后需要将该图像存储在应用程序的文件夹(Android中的 PictureDir / myappfolder / DocumentDir / myappfolder / >在iOS中)...

我现在正在做的是选择图片后,我再次下载它:

selectImageHandler = (img) => {
   // (... pre code ...)
   RNFS.downloadFile({
     fromUrl: img.link, // e.g. "http://www.url.to/the/picture.png
     toFile: uri,  // e.g. "file://"+PictureDir+ "/myAppFolder/picturename.jpg"
   }).promise.then( res => {
   // (... post code ...)
}

效果很好!但是要花一些时间,因为它会再次下载图像, 但我觉得这已经完成了两次,因为它已经下载并存储在缓存中以显示。

这又是我的问题,有没有办法知道图像在缓存中的存储位置,以便当用户按下图像进行保存时,它将不再下载 ,而宁愿将其从缓存文件夹中移动到应用程序文件夹中?

我说得通吗?还是重新下载正确的方法?

感谢您的帮助!

0 个答案:

没有答案