flutter-如何将Map 转换为List

问题描述 投票:0回答:2

[我正在将来的构建器中运行Firebase查询并检索子级。

快照恢复正常,但我想将数据添加到列表中

我想执行以下操作:

litems.clear();

                                    Map<dynamic, String> values = snapshot.data.value;
                                    values.forEach((key, values) {
                                      litems.add(values);
                                    });

litems是我的列表,我想在下拉列表中使用。

在我的下拉列表中,我有:

items: litems.map((String value) {
                              return new DropdownMenuItem<String>(
                                value: value,
                                child: new Text(value),
                              );
                            }).toList(),

我在第一部分中遇到的错误是无法将地图分配给列表

请帮助!

flutter firebase-realtime-database dart future
2个回答
0
投票

我不知道问题是什么,但是在列表声明中使用for循环会更干净,可能可以解决它:

item : [
    for(var value in litems.values)
        DropdownMenuItem<String>(
            value: value,
            child: Text(value),
        );
]

您需要在pubspec.yaml中使用最小SDK版本为> = 2.6.0


0
投票

似乎您试图将所有值添加为单个条目而不是特定值。

Map<dynamic, String> values = snapshot.data.value;
values.forEach((key, values) {
    litems.add(values);
});

您可以尝试

Map<dynamic, String> values = snapshot.data.value;
values.forEach((value) {
    litems.add(value);
});

values.forEach((key, values) {
    litems.add(values[key]);
});
© www.soinside.com 2019 - 2024. All rights reserved.