我使用的FutureBuilder
的{{1}}的{{1}}为3,因此它将显示三个ListView.builder
,其中包含{我通过itemCount
检索到的Firestore。该列表基本上具有三个随机生成的但满足特定条件的整数。值很好。
OutlineButton
线
String
返回一个错误,指出“在声明局部变量'handler'之前不能对其进行引用。
将列表填充到Future<List<int>>
文本中的最佳方法是什么?
答案 0 :(得分:1)
您可以使用嵌套的then
等待列表生成,然后使用它来填充getRestRandom()
,而不是使用FutureBuilder
来等待ListView
:< / p>
return FutureBuilder(
future: getAllWords(args.collectionId),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return FutureBuilder<List<int>>(
future: getRestRandom(args.collectionId),
builder: (context, numbersSnapshot){
if (!numbersSnapshot.hasData) {
return CircularProgressIndicator();
}
return ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: 3,
itemBuilder: (context, index) {
return ButtonBar(
children: <Widget>[
OutlineButton(
child: Text(snapshot
.data[numbersSnapshot.data[index]] // 1st, 2nd, and 3rd value from List
.data["tagalog"]),
onPressed: checkCorrect
? () {
setState(() {
});
}
: () {
print("FALSE");
})
],
);
});
}
);
});