flutter - FutureBuilder 不返回任何数据,但返回“对象实例”
问题描述
我目前正在开发一个基本上像数据库一样工作的应用程序。我希望它从我的 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 会得到正确的结果。我想要一些小费!提前致谢!
解决方案
FutureBuilder 工作正常并且正在返回数据。您从 getName 未来返回了一个 Fish 对象。 snapshot.data已返回一个 Fish 对象。要显示任何属性,您可以使用 Fish Model 的 snapshot.data.propertyName。
推荐阅读
- python - 我试图在 if 语句 python3 中强调一个单词
- javascript - JavaScript 无法使用“in”运算符搜索“完成”(ToDo 单文件组件)
- asp.net - 使用 API httpClient
- python - 从 python 列表元素( [''] )中删除额外的格式
- r - 如何对数据集中的两列进行排序,我想按列距离和 GoingTo 排序?
- javascript - 如何在 jQuery 中将元素存储为对象而不是 HTML 元素?
- angular - 用主数据值替换 id,建议一个适用于所有主数据的通用解决方案?
- node.js - 使用 jest 模拟具有不同实现的泵 node_module - Typescript
- java - 使用 Spring Boot 将 QR 码创建为 Base64 字符串
- python - 现代gl.error.Error:GLSL编译器失败