reactjs 如何在图像已更新但URL未更改的情况下刷新缓存图像

fnvucqvd  于 2023-02-08  发布在  React
关注(0)|答案(1)|浏览(134)

我想使用react-native-fast-image库缓存图像。图像URL不会随时间更改。但图像可以更改。因此,图像更改不会更改应用程序上的图像。图像存储在S3中。对于解决方案,我认为应该在Firebase端保留最后一个图像更新时间戳。因此,当我'在更新图像时,我可以更改时间戳并将其放在图像URL的末尾。
图像URL如下所示

http://localhost/chair.jpg?${last_updated_timestamp}
http://localhost/chair.jpg?${last_updated_timestamp}

我正在考虑将last_updated_timestamp保存在异步存储中,这样我就可以将时间戳从Firebase同步到异步存储,并直接用于图像。
有没有其他更好的方法可以达到同样的效果?

ubbxdtey

ubbxdtey1#

此库提供了不同类型的缓存控件。

source.cache?: enum
FastImage.cacheControl.immutable - (Default) - Only updates if url changes.
FastImage.cacheControl.web - Use headers and follow normal caching procedures.
FastImage.cacheControl.cacheOnly - Only show images from cache, do not make any network requests.

react-native-fast-image
在缓存中,url不会更改,因此可以对该组件使用简单缓存,如下所示

<FastImage
    source={{
      uri: item.image_url,
      headers: { Accept: "*/*" },
      priority: FastImage.priority.high,
      cache: FastImage.cacheControl.web
    }}/>

相关问题