我想用Firestore填充一个下拉按钮,我可以获取数据,但不能将其放在下拉菜单中。
我已经确定了问题,这是“下拉按钮”的项目列表,但我不知道发生了什么。
当我将valor放在'items'上时,它可以工作(不显示错误),但不显示任何内容(显然)。
这是我的代码。
StreamBuilder<QuerySnapshot>(
stream: Firestore.instance
.collection('usuarios/$id/ubications')
.snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
const Text("Error");
} else {
List<DropdownMenuItem> ubicationItems = [];
print(snapshot.data.documents.length);
for (int i = 0; i < snapshot.data.documents.length; i++) {
DocumentSnapshot snap = snapshot.data.documents[i];
//_accountType.add(snap['ubication']);
ubicationItems.add(DropdownMenuItem(
child: Text(
snap['ubication'],
),
value: "${snap['ubication']}",
));
}
print(ubicationItems.length); //it has the data
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
DropdownButton(
items: ubicationItems,
onChanged: (selectedType) {
print('$selectedType');
setState(() {
selectedType = selectedUbication;
});
},
value: selectedUbication,
isExpanded: true,
hint: new Text("ubication"),
),
],
);
}
}),
这是错误:
I / flutter(14877):引发了另一个异常:'package:flutter / src / material / dropdown.dart':失败的断言:609行pos 15:'item == null || items.isEmpty ||值== null || items.where(((DropdownMenuItem item)=> item.value == value).length == 1':不正确。
我使用了以下示例,例如指南:https://github.com/whatsupcoders/FlutterDropDown/blob/master/lib/main.dart
我希望有人能帮助我,谢谢。