【发布时间】:2021-06-13 20:15:46
【问题描述】:
我正在使用 sqlite 制作应用程序,当我尝试将数据放入小部件时,我遇到了错误。 我正在关注一个教程,它给了我这个错误: 元素类型“Iterable”不能分配给列表类型“Widget”。
FutureBuilder<List<Reminder>>(
future: _reminders,
builder: (context, snapshot) {
if (snapshot.hasData) {
_currentReminders = snapshot.data!;
return ListView(children: [
snapshot.data!.map<Widget>((reminder) {
return ReminderCard(
name: reminder.name, details: reminder.details);
}).toList(),
- 新的错误信息: 不能将元素类型“List”分配给列表类型“Widget”.dartlist_element_type_not_assignable
元素类型'List'不能分配给列表类型'Widget'.dartlist_element_type_not_assignable 可迭代映射(T Function(Reminder) f) 飞镖:核心 返回一个新的惰性 [Iterable],其中包含通过按迭代顺序在此 Iterable 的每个元素上调用 f 创建的元素。 此方法返回映射元素的视图。只要返回的 [Iterable] 没有被迭代,提供的函数 [f] 就不会被调用。转换后的元素不会被缓存。对返回的 [Iterable] 进行多次迭代将在同一个元素上多次调用提供的函数 [f]。 返回的可迭代对象上的方法允许在不需要结果的任何元素上省略调用 f。例如,[elementAt] 可能只调用一次 f。 Reminder 是 DB 元素的类。
Reminder(
{this.id = 0,
required this.name,
required this.details,
required this.save});
factory Reminder.fromMap(Map<String, dynamic> json) => Reminder(
id: json["id"],
name: json["name"],
details: json["details"],
save: json["false"]);
Map<String, dynamic> toMap() => {
"id": id,
"name": name,
"details": details,
"save": save,
};
}
你能帮我解决这个问题吗?
【问题讨论】: