Dart中fetchData方法返回类型不匹配错误求助
解决Dart异步方法返回类型不匹配错误
错误根源在于你在map转换时直接返回了Scale类型本身,而非创建对应的Scale实例,导致返回的列表类型为List<Type>,与方法声明的Future<List<Scale>>不匹配。
修正步骤:
- 确保
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']; }
- 修改
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
相关产品推荐
相关产品推荐

