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);
});
});
我有一个 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);
});
});