Flutter - 导航器回调刷新屏幕中的异步方法

Flutter - Async method in Navigator callback refresh screen

我有一个 Navigator.push 这样的:

Navigator.pushNamed(context, "NovoCNPJ").then((value) {
                    setState(() {
                      setupList();
                    });
                  });

我需要用这个 setState 更新我的 list 变量,我的 setupList 方法:

setupList() async {
    var banco = await db.initDB();
    list = await banco.rawQuery('SELECT * FROM Empresa');
    return list;
  }

此方法是异步的,因此我认为在此代码中它不是 运行。当我从上一个屏幕返回时,应该激活 setupList 并使用新项目重新加载我的列表,但未调用该方法。

如果 async 是问题所在,您可以试试这个吗?

Navigator.pushNamed(context, "NovoCNPJ").then((value) async {
  var banco = await db.initDB();
  var tempList = await banco.rawQuery('SELECT * FROM Empresa');
  setState(() {
    list = tempList
  });
});

编辑:

Navigator.pushNamed(context, "NovoCNPJ").then((value) async {
  var banco = await db.initDB();
  var tempList = await banco.rawQuery('SELECT * FROM Empresa');
  setState(() {
    list = new List();
    listArray = new List();
    list = new List.from(tempList);
  });
});