Я хочу заполнить раскрывающуюся кнопку в Firestore, и я могу получить данные, но не могу поставить их в раскрывающемся списке.
Я уже определил проблему, и это список пунктов кнопки DropDown, но я не понимаю, что происходит.
Когда я выставляю null доблести на '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, позиция 15: 'items == null || items.isEmpty || значение == ноль || items.where ((DropdownMenuItem item) => item.value == значение) .length == 1 ': не соответствует действительности.
Я использовал этот пример, как руководство: https://github.com/whatsupcoders/FlutterDropDown/blob/master/lib/main.dart
Надеюсь, кто-нибудь может мне помочь, спасибо.