我正在使用 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 函数(提醒)f)
飞镖:核心
返回一个新的惰性 [Iterable],其中的元素是通过按迭代顺序在此 Iterable 的每个元素上调用 f 创建的。
此方法返回映射元素的视图。只要返回的 [Iterable] 没有被迭代,所提供的函数 [f] 就不会被调用。转换后的元素不会被缓存。对返回的 [Iterable] 进行多次迭代将在同一元素上多次调用提供的函数 [f]。
返回的可迭代对象上的方法允许省略对不需要结果的任何元素的 f 调用。例如,[elementAt] 只能调用 f 一次。
Reminder是数据库元素的类。
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,
};
}
你能帮我解决这个问题吗?