我写的用来在数据库 returns 中获取数据的函数为空。数据库中有数据。在颤动中
The function I wrote to fetch data in the database returns empty. There is data in the database. In flutter
======== widgets库捕获异常================================ =======================
以下 NoSuchMethodError 被抛出构建 Notlar(脏,状态:_NotlarState#20db1):
在 null 上调用了方法 'notListesiniGetir'。
接收者:空
尝试调用:notListesiniGetir()
Photo-3 代码在这里:
[Future<int> kategoriSil(int kategoriID) async {
var db= await _getDatabase();
var sonuc= await db.delete("kategori", where: 'kategoriID= ?', whereArgs: \[kategoriID\]);
return sonuc;
}
Future<List<Map<String, dynamic>>> notlariGetir() async {
var db = await _getDatabase();
var sonuc= await db.rawQuery('select * from "not" inner join kategori on kategori.kategorID = "not".kategoriID;');
return sonuc;
}
Future<List<Not>> notListesiniGetir() async{
var notlarMapListesi = await notlariGetir();
var notListesi = List<Not>();
for(Map map in notlarMapListesi){
notListesi.add(Not.fromMap(map));
}
return notListesi;
}][1]
错误代码:======== 组件库捕获异常============================= ==========================
以下 NoSuchMethodError 被抛出构建 Notlar(脏,状态:_NotlarState#20db1):
在 null 上调用了方法 'notListesiniGetir'。
接收者:空
尝试调用:notListesiniGetir()
导致错误的相关小部件是:
Notlar 文件:///C:/Flutter%20calismalari/not_sepeti/lib/main.dart:63:27
抛出异常时,这是堆栈:
#0 Object.noSuchMethod (飞镖:core-patch/object_patch.飞镖:54:5)
#1 _NotlarState.build(包:not_sepeti/main.dart:166:30)
#2 StatefulElement.build(包:flutter/src/widgets/framework.dart:4802:27)
#3 ComponentElement.performRebuild(包:flutter/src/widgets/framework.dart:4685:15)
#4 StatefulElement.performRebuild(包:flutter/src/widgets/framework.dart:4857:11)
...
enter image description hereBwg.png
问题不在您的代码中,而是在您的屏幕截图中(您应该将其作为代码片段添加到您的问题中)。
您必须等待条件snapshot.hasData
变化自
If (snapshot.connectionState == ConnectionState.done)
到
If (snapshot.connectionState == ConnectionState.done && snapshot.hasData)
还有
var notListesi = List<Not>()
List<Not> notListesi = <Not>[ ]; // better
更重要的是,在您的初始状态中删除 DatabaseHelper
:
DatabaseHelper databaseHelper = DatabaSeHelper();
到
databaseHelper = DatabaseHelper();
它将起作用。
======== widgets库捕获异常================================ ======================= 以下 NoSuchMethodError 被抛出构建 Notlar(脏,状态:_NotlarState#20db1): 在 null 上调用了方法 'notListesiniGetir'。 接收者:空 尝试调用:notListesiniGetir()
Photo-3 代码在这里:
[Future<int> kategoriSil(int kategoriID) async {
var db= await _getDatabase();
var sonuc= await db.delete("kategori", where: 'kategoriID= ?', whereArgs: \[kategoriID\]);
return sonuc;
}
Future<List<Map<String, dynamic>>> notlariGetir() async {
var db = await _getDatabase();
var sonuc= await db.rawQuery('select * from "not" inner join kategori on kategori.kategorID = "not".kategoriID;');
return sonuc;
}
Future<List<Not>> notListesiniGetir() async{
var notlarMapListesi = await notlariGetir();
var notListesi = List<Not>();
for(Map map in notlarMapListesi){
notListesi.add(Not.fromMap(map));
}
return notListesi;
}][1]
错误代码:======== 组件库捕获异常============================= ========================== 以下 NoSuchMethodError 被抛出构建 Notlar(脏,状态:_NotlarState#20db1): 在 null 上调用了方法 'notListesiniGetir'。 接收者:空 尝试调用:notListesiniGetir()
导致错误的相关小部件是: Notlar 文件:///C:/Flutter%20calismalari/not_sepeti/lib/main.dart:63:27 抛出异常时,这是堆栈: #0 Object.noSuchMethod (飞镖:core-patch/object_patch.飞镖:54:5) #1 _NotlarState.build(包:not_sepeti/main.dart:166:30) #2 StatefulElement.build(包:flutter/src/widgets/framework.dart:4802:27) #3 ComponentElement.performRebuild(包:flutter/src/widgets/framework.dart:4685:15) #4 StatefulElement.performRebuild(包:flutter/src/widgets/framework.dart:4857:11) ...
enter image description hereBwg.png
问题不在您的代码中,而是在您的屏幕截图中(您应该将其作为代码片段添加到您的问题中)。
您必须等待条件snapshot.hasData
变化自
If (snapshot.connectionState == ConnectionState.done)
到
If (snapshot.connectionState == ConnectionState.done && snapshot.hasData)
还有
var notListesi = List<Not>()
List<Not> notListesi = <Not>[ ]; // better
更重要的是,在您的初始状态中删除 DatabaseHelper
:
DatabaseHelper databaseHelper = DatabaSeHelper();
到
databaseHelper = DatabaseHelper();
它将起作用。