【发布时间】:2019-12-06 00:02:00
【问题描述】:
我到处寻找,但没有找到解决办法。我想从查询中返回结果计数,但我遇到了麻烦。继续获取 "Instance of 'Future" 而不是 String
我正在使用单例模式。
- 数据库方法(database.dart):
Future<int> getUnCompletedTaskCount () async {
final db = await database;
var result = await db.rawQuery("SELECT * FROM Tasks WHERE isComplete = 0");
int count = Sqflite.firstIntValue(result);
return count;
}
- 我在 main.dart 中的方法:
getResultCount () async {
final value = await DBProvider.db.getUnCompletedTaskCount();
return value;
}
- 通过以下方式调用方法:
getResultCount().toString()
【问题讨论】:
-
你在你的函数上使用'async',所以你可以使用
FutureBuilder从数据库中获取数据,api,... -
感谢您的回复。你有例子吗?
-
对于 FutureBuilder ?在medium.com 你可以找到很多。也许This one 会有所帮助。如果您在重构代码时需要帮助,我很乐意提供帮助。
-
我试过了,我认为我做得对。现在,它正在打印结果,但只是不将其显示到 Text 小部件中。 getResultCount () async { var x; var value = await DBProvider.db.getUnCompletedTaskCount().then((val) { x = val; });打印(x.toString()+“测试”);返回 x; }