Flutter CachedNetworkImage图像不会以相同的名称更改

Flutter CachedNetworkImage图像不会以相同的名称更改,flutter,dart,Flutter,Dart,我正在使用显示网络图像 我遇到了一个奇怪的问题。在这里,我设置我的个人资料图像和个人资料图像的url将是相同的,只有图像将被更改 假设,如果我第一次上传个人资料图像,我会得到像“第一次一切正常”这样的url。但当我第二次更改配置文件图像时,我将获得与上面相同的url和新图像。但问题是,CachedNetworkImage无法加载我的新图像 需要你的指导来解决这个问题 注:我知道,如果我在上传第二张图片之前从缓存目录中删除前一张图片,它会解决我的问题 更新: 天哪,同样的东西甚至不适用于Image

我正在使用显示网络图像

我遇到了一个奇怪的问题。在这里,我设置我的个人资料图像和个人资料图像的url将是相同的,只有图像将被更改

假设,如果我第一次上传个人资料图像,我会得到像“第一次一切正常”这样的url。但当我第二次更改配置文件图像时,我将获得与上面相同的url和新图像。但问题是,
CachedNetworkImage
无法加载我的新图像

需要你的指导来解决这个问题

注:我知道,如果我在上传第二张图片之前从缓存目录中删除前一张图片,它会解决我的问题

更新:


天哪,同样的东西甚至不适用于
Image.network

如果不同图像的url没有改变,最好避免使用CachedNetworkImage。。。你可以简单地使用NETWORKIGIN WITGET

如果图像发生变化,我会认为这是一个新的资源。如果我们认为它是一个新的资源,那么它应该有一个新的资源定位器(即新的URI)。如果图像正在更新但使用相同的URI,则将其缓存到任何位置(在浏览器、CDN等中)都会变得非常困难。

因此,对于我调用MyCache.Recit(键),从磁盘删除图像并调用setState()没有任何作用。但是如果我在调用setState()之前也调用MyImageDownloader.execute(key),这将触发一个新的下载,它将为同一个键获取新的图像

问题是,您必须从任何地方逐出和/或删除图像,包括扩展ImageProvider的类,在我的例子中是MyImageDownloader

如果其他所有操作都完成了,但仍然没有收到新图像,则调用“不推荐”PaintingBinding.instance.imageCache.execute(键)


有几个图书馆在那里,都有自己的特殊成分。所以试着用一个对你更有效的方法来做实验。其思想是从任何库的缓存中逐出,从磁盘中删除,并从任何扩展ImageProvider的类中调用逐出。

当需要清除CachedNetworkImage时,请使用此代码

await CachedNetworkImage.evictFromCache(url);