当前位置: 首页 > 知识库问答 >
问题:

类型“\u InternalLinkedHashMap”不是类型“Iterable”颤振的子类型

孟华晖
2023-03-14

我对Flutter更陌生。我想从API中获取类别和产品信息。我对类别没有问题,但是当获取产品时,我得到错误"未处理的异常:类型'_InternalLinkedHashMap

我看到了许多这一错误的例子,但我无法将其与我自己联系起来。

(产品Api)

static Future<http.Response> getProductsByCategoryId(int categoryId){
    return http.get(Uri.http("10.0.2.2:3000", "products?categoryId=$categoryId"));
  }

(产品类别)

class Product {
  int id;
  int categoryId;
  String productName;
  String quantityPerUnit;
  double unitPrice;
  int unitsInStock;

  Product(this.id, this.categoryId, this.productName, this.quantityPerUnit,
      this.unitPrice, this.unitsInStock);

  Product.fromJson(Map json){
    id = json["id"];
    categoryId = json["categoryId"];
    productName = json["productName"];
    quantityPerUnit = json["quantityPerUnit"];
    unitPrice = double.tryParse(json["unitPrice"].toString()) ;
    unitsInStock = json["unitsInStock"];
  }
Widget buildProductList(BuildContext context) {
    return Expanded(
      child: ListView.builder(itemCount: widget.products.length, itemBuilder: (context, index){
        return Text(widget.products[index].quantityPerUnit);
      }),
    );
void getProductsByCategoryId(Category category) {
   ProductApi.getProductsByCategoryId(category.id).then((response){
     setState(() {
       Iterable list = json.decode(response.body);
       this.products = list.map((product) => Product.fromJson(product)).toList();
     });
   });

共有2个答案

杜嘉慕
2023-03-14

我通过改变下面的部分解决了这个问题

之前

return http.get(Uri.http("10.0.2.2:3000", "products?categoryId=$categoryId" ));

之后

 return http.get(Uri.http("10.0.2.2:3000", "products", {"categoryId" : "$categoryId"}  ));
许照
2023-03-14

您可能需要显式地从json.decode返回的映射最终列表=json.decode(response.body). cast

地图在省道中不可迭代:https://medium.com/flutterdevs/collection-in-dart-17493ac9e704

 类似资料:
  • 我是颤振开发方面的新手。我犯了一个错误 列表不是“Iterable”类型的子类型 到目前为止,我已经做到了。 模范班 缅因州班内 } 我试图从2天开始解决这个问题。 请帮忙,谢谢。 这里是JSON响应,您可以检查链接

  • 我正在尝试使用Dio客户端进行API调用。当我收到响应时,它会抛出一个错误 “\u InternalLinkedHashMap”不是“String”类型的子类型 试图解决它,但我不能。下面是代码 后Api调用 模型类使用内置值 序列化程序类 帮我怎么解决

  • 我有以下错误而做ListView.builder,我只是想显示滚动列表视图,所以我从API调用对象, [屏幕截图链接] API调用结果: 这就是我的设计,帮助我解决这个错误也建议我学习颤振中不同的环结构,提前感谢。 错误: 小部件库 ╞═══════════════════════════════════════════════════════════ 引起的异常以下_TypeError被抛出构建

  • 我有一个问题,因为2小时。我有这个错误,我看到了更多的主题,但我不能解决它。 消息:_TypeError(类型列表不是类型映射的子类型)颤动 我的模型: 我的主题屏幕: 我尝试了更多的教程和不同的主题,但我有相同的错误。。。 非常感谢。

  • 我正面临着一个奇怪的颤动错误。我使用json序列化。 这是我的密码 我的web api发送的数据如下 这是数组的数组。 生成错误的代码是 它给出的错误 JSON数据这里是JSON数据格式的屏幕截图

  • 当我尝试解码json时,它会给我错误。 我的模范班 功能在我使用它的地方 json数据