【发布时间】:2019-03-16 07:39:47
【问题描述】:
我正在尝试使用颤振框架在数据库中的表中插入一行,当我将返回的值分配给新变量时,我收到以下错误消息
a value of type future<int> can not be assigned to a variable of type int
这是插入新行的函数
Future<int> addContact(String contact_name, String contact_phone) async {
Database c = await getConnection;
Map<String, dynamic> contact = getMap(contact_name, contact_phone);
return await c.insert("contacts", contact);
}
这里是我获取返回数据的地方
int result=db.addContact(name, phone);
【问题讨论】:
-
可能是
int result= await db.addContact(name, phone);? -
@alexkucksdorf 不起作用,因为 awaitat 需要异步的方法,你不能修改 satefulWidget 类的构建函数
-
异步具有传染性。您无法从异步返回到同步。调用者还需要
async关键字并使用await来依赖在执行继续之前完成的异步代码。 -
那么你应该使用
FutureBuilter。 -
@GünterZöchbauer 能否提供 FutureBuilder 教程的链接,我无法得到很好的解释
标签: dart flutter hybrid-mobile-app mobile-application