无效参数:URI null 中未指定主机” - 使用 CachedNetworkImage 从 Jikan API 访问图像 URL (Flutter)

问题描述 投票:0回答:1

我正在开发一个 Flutter 应用程序,该应用程序从 Jikan API 检索动漫数据 (https://api.jikan.moe/v4/anime)。我正在使用 CachedNetworkImage 显示动漫图像,但遇到错误:

错误信息:

Invalid argument(s): No host specified in URI null

以下是相关代码片段:

ListView.builder(
  // ... other builder arguments
  itemBuilder: (context, index) {
    return AnimeDataItme(
      imageUrl: animeData.data![index].images!.jpg!.imageUrl.toString(),
    );
  },
),

// Assuming AnimeDataItme builds the CachedNetworkImage
    return CachedNetworkImage(
      imageUrl: imageUrl,
      fit: BoxFit.fill,
    );

//web services
@RestApi(baseUrl: ApiConstants.apiUrl)
abstract class WebServices {
  factory WebServices(Dio dio, {String baseUrl}) = _WebServices;

  @GET(ApiConstants.apiUrl)
  Future<Anime> getAnimeData();
}

//repo
 Future<Anime> getAnimeData() async {
    try {
      final response = await _webServices.getAnimeData();
      return response;
    } on DioError catch (error) {
      print("Error: ${error.message}");
      throw Exception("Failed to get data information");
    }
  }

我尝试过以下方法:

  • 在图片 URL 前添加了 http://。
  • 使用空条件运算符 (?.) 确保整个代码的空安全。 但是,错误仍然存在,并在第一次尝试时更改为“http://null”。

我非常感谢社区提供的任何帮助来确定空 URL 的根本原因并提出修复此错误的解决方案。有没有人遇到过类似的问题或对可能导致问题的原因有任何见解?

flutter null dio
1个回答
0
投票

问题出在 imageUrl 上,试试这个

CachedNetworkImage(
  imageUrl: imageUrl.replaceAll('/\\', ""),
  fit: BoxFit.fill,
);
© www.soinside.com 2019 - 2024. All rights reserved.