【发布时间】:2021-02-25 21:40:02
【问题描述】:
所以我对futurebuilder 有意见。 首先是我的代码:
FutureBuilder(
future: DBProvider.db.getAllTasks(),
builder:(BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState ==
ConnectionState.waiting) {
return Center(
child: Text("Loading..."),
);
} else if (snapshot.hasData) {
print(snapshot.data);
return Column(
children: List.generate(snapshot.data.length,
(index) {
return Text(snapshot.data[index].title); // the problem is here
}),
);
} else {
return Center(
child: CircularProgressIndicator());
}
}),
我使用 DBProvider.db.getAllTasks() 获取数据,该数据将返回一个列表,然后我使用构建器呈现此数据,snapshot.data 不等于 null,因为当我打印 snapshot.data 时它显示列表中的每个项目都有一个实例。 问题是当我尝试显示列表时,它给了我这个错误: 必须向 Text 小部件提供非空字符串。 'package:flutter/src/widgets/text.dart': 断言失败:第 360 行 pos 10: 'data != null'
这个错误是因为文本小部件。 我该如何解决这个问题? 提前致谢。
【问题讨论】:
-
标题是否为空?因为您不能将空字符串传递给文本小部件,所以它不一定是为空的 snapshot.data
-
谢谢,是的,这似乎是我将查看我的 sql 代码并查看它是否在数据库中插入项目的问题。感谢您的帮助
标签: flutter dart flutter-futurebuilder