[英]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.