小编Shl*_*ith的帖子

Flutter:如何处理带有无效图像数据异常的 NetworkImage?

我正在尝试使用 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)

error-handling dart flutter

5
推荐指数
1
解决办法
6810
查看次数

标签 统计

dart ×1

error-handling ×1

flutter ×1