我在地图值列表中保存了一些值。
List<Map<String, String>> savedValues = [];
现在,我想提取列表中的这些值和键。我想将它们提取为字符串。当我尝试执行此操作并尝试在 ListView.builder() 中显示这些值时,我收到了如上所述的错误。
我正在做这个。
List _values = [];
List _keys = [];
for (var value in savedValues)
{
_values.add(value.values);
_keys.add(value.keys);
}
我尝试了不同的解决方案,但不明白该怎么做。请问有什么帮助吗?
您需要学习使用正确的类型,以便编译器可以告诉您哪里出错了。
您的列表是无类型的,这意味着它们是某物的列表。当您添加到列表时,您将添加一组值作为一个整体。因此,您不会将字符串填充到字符串列表中,而是将“字符串串”填充到某些内容的列表中,这显然意味着“字符串串”列表。嗯,不是那个意思。让我们尝试使用正确的类型:
final _values = <String>[];
final _keys = <String>[];
for (var value in savedValues)
{
_values.addAll(value.values);
_keys.addAll(value.keys);
}
使用正确的类型,您的“add”而不是“addAll”行将为您带来编译错误,通知您“add”不会执行您认为的操作。