我正在尝试使用 NetworkImage 作为容器的 BoxDecoration 中的图像。传递给 NetworkImage 的 url 有时会包含错误的图像类型(该 url 有效且正确,但指定 url 处的实际图像是错误的),从而导致错误。
为了处理这种情况,我设置了一个方法,该方法使用 try-catch 块,如果成功则返回 NetworkImage,如果出现错误则返回预设的 AssetImage。try-catch 块不处理此异常,并抛出错误,而不是返回 catch 中指定的 AssetImage。
我已经看到 Image.network 有一个 onError 参数,看起来它可以解决问题,但是 Image.network 的类型为“Image”,而 BoxDecoration 需要一个“ImageProvider”(NetworkImage、AssetImage),因此这无济于事这个案例。
处理此错误的最佳方法是什么,以便我可以在 NetworkImage 抛出错误的情况下显示 AssetImage?
这是持有 BoxDecoration 的小部件,我在其中调用我创建的方法来处理获取 NetworkImage:
class CharacterPreviewCard extends StatelessWidget {
final CharacterPreview character;
const CharacterPreviewCard({Key? key, required this.character})
: super(key: key);
@override
Widget build(BuildContext context) {
return InkWell(
onTap: () {
context.router
.push(CharacterDetailsRoute(characterId: character.characterId));
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: 171,
width: 171, …Run Code Online (Sandbox Code Playgroud)