我想从
ListView.builder
的列表中删除一个项目,但它说它是只读的。
List<Map> entries = [{'date': '2019-08-10', 'data': 85.0}, {'date': '2019-08-14', 'data': 84.0}];
onPressed: () {
removeItem(index);
}
void removeItem(index) {
entries.removeAt(index);
}
Another exception was thrown: Unsupported operation: read-only
这也不起作用:
onPressed: () {
removeItem(date);
}
void removeItem(date) {
entries.removeWhere((item) => item['date'] == date);
}
我从中得到了解决方案,链接
entries = List.from(entries)..removeAt("theIndexValue");
您可以使用
where
或 whereNot
方法生成新列表,而不是更新列表,如下所示:
List<Map> updatedEntries = entries.whereNot((item) => item['date'] == date);