我也添加了接收器不为空的条件,但错误仍然存在。这是我无法解决的2个错误。请帮助!我正在制作“Notes”应用程序,我在其中存储值在sqflite数据库。
body: FutureBuilder(
future: getNotes(),
builder: (context, noteData) {
switch (noteData.connectionState) {
case ConnectionState.waiting:
{
return Center(child: CircularProgressIndicator());
}
case ConnectionState.done:
{
if (noteData.data == null) {
return Center(
child: Text("You don't have any notes yet, create one!"),
);
} else {
return Padding(
padding: EdgeInsets.all(8.0),
child: ListView.builder(
itemCount: noteData.data.length, //Error
itemBuilder: (context, index) {
String title = noteData.data[index]['title'];// Error-The method '[]' can't be
//unconditionally invoked because the receiver //can be 'null'.
String body = noteData.data[index]['body'];
String creation_date =
noteData.data[index]['creation_date'];
int id = noteData.data[index]['id'];
4条答案
按热度按时间j8yoct9x1#
出现了相同的错误,当我在noteData之前放置***“AsyncSnapshot”***时,我的错误得到了解决
hfsqlsce2#
这与Dart null安全有关。解决这个问题的一个方法是使用bang操作符,因为您确信noteData.data永远不会为null(您在使用之前检查),例如:
noteData.data!.length
、noteData.data![index]['title']
等等。这个解决方案看起来很麻烦,所以我建议在使用
noteData.data
之前创建一个局部变量:wfveoks03#
这是我的笔记课
yshpjwxd4#
我也有同样的问题。在我的例子中,我忘记了把列表〈〉放在未来之后