我正在尝试读取记录以创建仪表板,但问题是我不知道如何从数据库中读取数据,请有人帮助我,这是代码< / p>
Future dataline() async {
final dao1 = Provider.of<CommandeDao>(context);
List<GeneratorCommandeResult> liste = await dao1.GeneratorCommande();
return liste;
}
Material mychart1Items(String title, String priceVal,String subtitle) {
Future liste = dataline() ;
return Material(
color: Colors.white,
elevation: 14.0,
borderRadius: BorderRadius.circular(24.0),
shadowColor: Color(0x802196F3),
child: Center(
child: Padding(
padding: EdgeInsets.all(8.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Padding(
padding: EdgeInsets.all(1.0),
child: new Sparkline(
data: liste,
lineColor: Color(0xffff6101),
pointsMode: PointsMode.all,
pointSize: 8.0,
),
),
],
),
],
),
),
),
);
}
答案 0 :(得分:0)
您应该将FutureBuilder
小部件与dataline
函数之类的异步操作配合使用。
示例
FutureBuilder<double>(
future: liste,
builder: (BuildContext context, AsyncSnapshot<double> snapshot) {
return snapshot.hasData?Padding(
padding: EdgeInsets.all(1.0),
child: new Sparkline(
data: snapshot.data,
lineColor: Color(0xffff6101),
pointsMode: PointsMode.all,
pointSize: 8.0,
),
):CircularProgressIndicator();
//the CircularProgressIndicator
//is used to indicate the data hasn't come yet
},
),
在此列的children参数中添加此FutureBuilder。
注意:在sparkLine小部件中,data参数接收的是snapshot.data而不是您声明的liste。因为您的列表类型为Future类型,其中保存的数据类型为double,而快照具有实际数据,在这种情况下,该数据为double列表。 希望对您有帮助
答案 1 :(得分:0)
假定您有一个包含列id
,name
和age
的狗表,然后以List<Map<String, dynamic>>
的形式从表中检索所有狗的行,将它们映射回Dog对象,如下所示:
// A method that retrieves all the dogs from the dogs table.
Future<List<Dog>> dogs() async {
// Get a reference to the database.
final Database db = await database;
// Query the table for all The Dogs.
final List<Map<String, dynamic>> maps = await db.query('dogs');
// Convert the List<Map<String, dynamic> into a List<Dog>.
return List.generate(maps.length, (i) {
return Dog(
id: maps[i]['id'],
name: maps[i]['name'],
age: maps[i]['age'],
);
});
}
注意:代码示例来自flutter文档。
可以类似地映射包含double
值的列表。