【发布时间】:2021-03-03 03:06:37
【问题描述】:
几个月来一直在 dart 中编码。当前尝试生成包含来自本地 SQL 数据库的标题的网格视图。我能够浏览数据库并将标题保存到数组中以备后用。我可以毫无问题地将它们打印出来,但是当我尝试在我的网格视图中显示它们时,我得到“类型'Future'不是'String'类型的子类型”奇怪的是我的代码工作了一秒钟并显示了信息正确,但是当我刷新页面时(我没有触摸代码)我得到了最让我困惑的错误。
数据库助手类
getFactTitle(String target, int position) async {
Database db = await this.database;
String searchString =
('SELECT title FROM factTable WHERE fid="' + target + '"');
var result = await db.rawQuery(searchString);
if (result.length > 0) {
titles[position] = result.first.values.first.toString();
} else {
return null;
}
}
网格视图
Widget _buttons() {
return Expanded(
child: GridView.count(
crossAxisCount: 2, //NUMBER OF COLUMNS
children: List.generate(numberOfFacts, (index) {
return Center(
child: new Column(children: <Widget>[
IconButton(
icon: Image.asset('assets/pictures/' +
category +
_stringIndex(index) +
'a.jpg'),
onPressed: () {
print("Clicked: " + category + _stringIndex(index));
}),
Text(
_getTitle(index),
),
]),
);
}),
),
);
}
_getTitle(int index) async {
print(titles[index]);
return titles[index];
}
_getTitles() async {
String theTitle;
_getCategory();
for (int i = 1; i <= numberOfFacts; i++) {
String target = category + (i.toString());
await helper.getFactTitle(target, i);
print(titles[i]);
theTitle = titles[i];
}
return theTitle;
}
【问题讨论】:
标签: sql flutter dart gridview sqflite