我目前正在开发一个基本上像数据库一样工作的应用程序。我希望它从我的sqflite数据库中获取数据并将其用作文本。由于某种原因,我只能得到“对象索引”,而不是文本的正确值。这是我在database_helper.dart中的代码:
Future<Obj> getName(int id) async {
final db = await database;
var res = await db.query(table, columns: [objName], where: "objId= ?", whereArgs: [id]);
await print(res); //returns right value
return await res.isNotEmpty ? Fish.fromMap(res.first) : Null ;
}
}
这是我的FutureBuilder
FutureBuilder(
future: dbHelper.getName(1),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasData) {
return ListTile(
leading: Icon(Icons.message),
title: Text('${snapshot.data}'),
subtitle: Text(""),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => NextPage()),
);
}
);
}
return Container();
},
),
我觉得我尝试了一切。直接从database_helper.dart打印res可获得正确的结果。 我想要一些小费!预先感谢!
答案 0 :(得分:0)
FutureBuilder运行正常,正在返回数据。您的getName将来返回了一个Fish对象。 snapshot.data 返回了一个Fish对象。要显示任何属性,可以使用Fish模型的snapshot.data.propertyName。