我的function
中有一个initState
:
@override
void initState() {
_fetchListItems();
super.initState();
}
此function
非常简单。它有两个async
的{{1}} await
个操作,其中一个等待另一个完成:
sqflite
我必须等待获取 _fetchListItems() async {
wait() async {
number = await db.getNumber(userId); }
await wait();
List rawFavouriteList = await db.getList(number);
setState((){
rawFavouriteList.forEach((item){
_favouriteList.add(Model.map(item));
}});
}
,然后才能获取序列化的number
,然后对它进行反序列化并填充,然后添加到List
中,该List
显示在{{ 1}}。
问题是,这在ListView
中不起作用。通过按钮的initState
调用它时工作正常,但在onPressed()
中却不能。
注意事项:
1)没有引发错误
2)我已经通过使用initState
之类的单独函数,甚至在await
中使用rawFavouriteList
甚至为wait()
尝试了更保守的替代方法,然后使用setState()
填充了{{1} },即使通过按钮手动可以正常工作。
3)如果我在第二个数据库查询中手动输入_favouriteList
值并删除第一个查询,即
number