Я использую FutureBuilder
, который имеет ListView.builder
с itemCount
, равным 3, так что он отобразит три OutlineButton
, которые несут String
из Firestore, которые я получаю через Future<List<int>>
.В основном список содержит три целых числа, которые генерируются случайным образом, но соответствуют определенным критериям.Значения в порядке.
return FutureBuilder(
future: getAllWords(args.collectionId),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: 3,
itemBuilder: (context, index) {
//Future that returns a list of 3 integers
getRestRandom(args.collectionId).then(handler);
int handler(picked){
return picked;
}
return ButtonBar(
children: <Widget>[
OutlineButton(
child: Text(snapshot
.data[picked] // 1st, 2nd, and 3rd value from List
.data["tagalog"]),
onPressed: checkCorrect
? () {
setState(() {
});
}
: () {
print("FALSE");
})
],
);
});
});
Строка getRestRandom(args.collectionId).then(handler);
возвращает ошибку, в которой говорится, что на «локальную переменную« обработчик »нельзя ссылаться до ее объявления».
Что лучшеспособ подачи списка в текст OutlineButton
?