FutureBuilder不返回任何数据,但返回“对象实例”

时间:2020-04-21 21:13:31

标签: flutter sqflite

我目前正在开发一个基本上像数据库一样工作的应用程序。我希望它从我的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可获得正确的结果。 我想要一些小费!预先感谢!

1 个答案:

答案 0 :(得分:0)

FutureBuilder运行正常,正在返回数据。您的getName将来返回了一个Fish对象。 snapshot.data 返回了一个Fish对象。要显示任何属性,可以使用Fish模型的snapshot.data.propertyName。