В настоящее время я пытаюсь преобразовать Future 'int' в int, но, оглядываясь вокруг, мне трудно понять, как это разрешить. Есть ли способ преобразовать данные базы данных в int?
Метод базы данных
Future<int> queryGetPlastic() async {
Database db = await instance.database;
//return Sqflite.firstIntValue(await db.rawQuery('SELECT plastic from $table '));
return Sqflite.firstIntValue(await db.rawQuery('SELECT cast(plastic AS INTEGER) from $table order by _id DESC limit 1'));
}
Future<int> queryGetPaper() async {
Database db = await instance.database;
//return Sqflite.firstIntValue(await db.rawQuery('SELECT plastic from $table '));
return Sqflite.firstIntValue(await db.rawQuery('SELECT cast(metal AS INTEGER) from $table order by _id DESC limit 1'));
}
Future<int> queryGetMetal() async {
Database db = await instance.database;
//return Sqflite.firstIntValue(await db.rawQuery('SELECT plastic from $table '));
return Sqflite.firstIntValue(await db.rawQuery('SELECT cast(paper AS INTEGER) from $table order by _id DESC limit 1'));
}
Итак, в основном с помощью методов я попробовал
Данные диаграммы с его виджетом
//since it's future int
var data = [
Waste('Metal', dbHelper.queryGetMetal(), Colors.red),
Waste('Paper', dbHelper.queryGetPaper(), Colors.yellow),
Waste('Plastic', dbHelper.queryGetPlastic(), Colors.blue),
];
var series = [
charts.Series(
domainFn: (Waste clickData, _) => clickData.type,
measureFn: (Waste clickData, _) => clickData.count,
colorFn: (Waste clickData, _) => clickData.color,
id: 'Clicks',
data: data,
),
];
var chart = charts.BarChart(
series,
animate: true,
);
var chartWidget = Padding(
padding: EdgeInsets.all(32.0),
child: SizedBox(
height: 200.0,
child: chart,
),
);
: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text(''),
Text(''),
Text('Welcome!'),
//Text('$genwaste'),
chartWidget,
........................................
Я думал, что если бы я использовал asyn c, он преобразовал бы его в int, но он вернется в будущее int
void _plastic() async {
int plastic = await dbHelper.queryGetPlastic();
}
_metal() async {
int plastic = await dbHelper.queryGetMetal();
return plastic;
}
_paper() async {
int plastic = await dbHelper.queryGetPaper();
return plastic;
}