繁体   English   中英

Flutter 缓存图像是否可以重新加载图像而不是获取缓存图像?

[英]Flutter cached image is it possible to reload image instead of getting the cached image?

我正在使用 flutter_cached_network_image 包从 firebase 加载图像。 当用户更新他的个人资料图片(文件名仍然相同)时,加载的图像仍然与更新前的图像相同,因为它是从缓存中加载的(因为它仍然具有与以前相同的 url)。 是否可以从缓存中清除图片以便加载新图片?

显然,目前没有解决方案。 见这里: https : //github.com/Baseflow/flutter_cached_network_image/issues/77

我使用地址中的图像版本来解决这个问题。 类似于: https : //example.com/image.jpg?version=14

就像@EderBaum 说的,你可以强制输入一个额外的查询字符串,值取决于你想要的效果,例如:

1 - 从不缓存 http:urlofresource.com/yourimage.jpg?version={NewRandonNumberGenerated}

您可以使用Random类来实现这一点。

2-根据应用程序版本重新加载缓存

与之前相同,但现在,您可以使用版本信息,您可以将其放入全局状态或其他地方以在更新后检索信息

3 - 使用普通缓存

只需让小部件完成工作即可。

我遇到过同样的问题。 这对我有帮助:

imageCache.clearLiveImages();
imageCache.clear();
_bloc.add(ReloadEvent());

成功更新照片后清理缓存并重建小部件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM