(颤振/飞镖)initState中的两个异步方法不起作用

时间:2019-06-20 21:07:36

标签: flutter dart sqflite

我的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

0 个答案:

没有答案