我有一个应用程序,它大量使用 React Native 的 Image 组件。
我知道缓存适用于远程图像,但我需要加载定期更改的本地镜像。
即使本地文件发生更改,图像组件也会缓存文件并显示缓存版本。
问题是如何禁用对本地文件的缓存,但为远程 URL 保留缓存(因为我混合了本地和远程)?
我会给出一个代码示例,但实际上它就像<Image source={{uri: 'file://image.png'}} />
注意:这些是由应用程序中的操作创建和更改的文件,因此 require('image.png')
不会剪掉它。我一直将它用于静态图像并且效果很好,但它是静态的而不是动态的。
我还看到了有关字符串末尾的随机查询参数的答案。总的来说,这很hacky,所以我不会雇用你工作:) 但除此之外,它显然不起作用。
提前加油!
根据对远...的评论和答案,当图像文件更改时,要真正清楚。它需要立即更改图像组件,因此需要清除缓存和状态并显示新图像。
最佳答案
回答有点晚,但您可以添加查询 "?time=new Date()"
在你的变量中,像这样:
const [profilePicture] = useState(`${baseURL}${user.infoUser.image_profile}?time=${new Date()}`);
这个的主要问题是每次都会刷新图像,因此显示图像的延迟可能相当高。
关于react-native - 防止 React Native 缓存本地镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49106339/