You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart中fetchData方法返回类型不匹配错误求助

解决Dart异步方法返回类型不匹配错误

错误根源在于你在map转换时直接返回了Scale类型本身,而非创建对应的Scale实例,导致返回的列表类型为List<Type>,与方法声明的Future<List<Scale>>不匹配。

修正步骤:

  1. 确保Scale类有一个能将Map<String, dynamic>转换为实例的构造函数(通常命名为fromMap),示例:
class Scale {
  final int id;
  final String value;

  Scale({required this.id, required this.value});

  // 从Map生成Scale实例的构造函数
  Scale.fromMap(Map<String, dynamic> map)
      : id = map['id'],
        value = map['value'];
}
  1. 修改fetchData方法中的map转换逻辑,通过构造函数创建Scale实例:
Future<List<Scale>> fetchData() async {
  final Database db = await _initDatabase();
  final List<Map<String, dynamic>> queryResult = await db.query(table);
  return queryResult.map((e) => Scale.fromMap(e)).toList();
}

如果你的Scale类使用普通构造函数传参,也可以直接传入对应字段:

return queryResult.map((e) => Scale(id: e['id'], value: e['value'])).toList();

内容的提问来源于stack exchange,提问作者Maddo_x3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 18:18:50