【发布时间】:2019-01-13 02:37:31
【问题描述】:
在我的Flutter 移动应用程序中,通过NetworkImage() 加载用户的个人资料图片时,我收到了403 状态码作为响应。
如果出现 403 状态代码或图像 URL 损坏等情况,如何通过显示我的 assets 文件夹中的图像来处理此问题。
目前我已经通过向图像 URL 发送 HTTP GET 请求并检查 状态代码是否为 200 来处理它。如果是 200,我使用NetworkImage(),否则我使用AssetImage() 加载图像并使用FutureBuilder() 构建小部件。
虽然这很有效,但我觉得处理这么小的场景很麻烦,而且可以以我不知道的更好的方式完成。
处理这种情况的最佳方法是什么?
【问题讨论】:
-
您可以使用堆栈小部件并同时加载 AssetImage 和 NetworkImage。如果加载成功,NetworkImage 将显示在 AssetImage 的顶部。但这样一来,资产小部件无论如何都会加载。
-
这不适用于我的情况,它仍然会抛出异常,只是您不会注意到差异。我正在寻找类似加载错误的后备。如果我在只需要 1 张图片时加载 2 张图片,也会影响性能吗?
-
如果networkImage失败,它会抛出一个异常,这不是一场彻底的灾难!这个解决方案很简单,成本最低。但我同意你的看法。这感觉不对。看看这个:github.com/flutter/flutter/issues/6229