我有一个像这样的Navigator.push:
Navigator.pushNamed(context, "NovoCNPJ").then((value) {
setState(() {
setupList();
});
});
我需要使用此setState,setupList方法更新 list 变量:
setupList() async {
var banco = await db.initDB();
list = await banco.rawQuery('SELECT * FROM Empresa');
return list;
}
此方法是异步的,因此我认为它不在此代码上运行。当我从最后一个屏幕返回时,应该激活setupList并使用新项重新加载我的列表,但是未调用该方法。
答案 0 :(得分:2)
如果问题是#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <fstream>
using namespace std;
int mini, maxi;
int *list = new int[10000002];
int *visited = new int[10000002];
bool is_pal(string num)
{
string num2 = num;
reverse(num2.begin(), num2.end());
if (num2 == num)
return true;
return false;
}
int main()
{
visited[4] = 1;
visited[6] = 1;
visited[8] = 1;
visited[9] = 1;
cin >> mini >> maxi;
for (int i = mini; i <= maxi; i++)
list[i] = i;
for (int i = mini; i <= maxi; i++)
{
if (visited[i] == 0)
{
for (int j = i * 2; j <= maxi; j += i)
{
visited[j] = 1;
list[j] = -1;
}
}
}
for (int i = mini; i <= maxi; i++)
if (visited[i] == 0 && is_pal(to_string(list[i])))
cout << list[i] << "\n";
return 0;
}
,您可以试试吗?
async
编辑:
Navigator.pushNamed(context, "NovoCNPJ").then((value) {
var banco = await db.initDB();
var tempList = await banco.rawQuery('SELECT * FROM Empresa');
setState(() {
list = tempList
});
});