我正在嘗試在頁面重新加載時閱讀我的??應用程式中的書簽專案。該代碼查詢以前加書簽但無法訪問特定加書簽的索引的專案串列。我缺少什么來正確映射物件?請幫忙!
Future<List<Map<String, dynamic>>>_readfav() async {
DatabaseHelper helper = DatabaseHelper.instance;
List<Bookmark> savedbk = [];
final favs = await helper.queryAllRows();
print(favs); // returns a map of favorite objects
favs.forEach((row) => savedbk.add(Bookmark()));
print(savedbk); // returns Instances of Bookmark
print( savedbk[0].Ayah.toString()); // returns null-- this is the problem
return favs;
}
模型類
class Bookmark{
int id;
int Surah;
int Ayah;
int Juz;
Bookmark();
Bookmark.fromMap(Map<String, dynamic> map) {
id = map[columnId];
Surah = map[columnSurah];
Ayah = map[columnAyah];
Juz = map[columnJuz];
}
Map<String, dynamic> toMap() {
var map = <String, dynamic>{
columnSurah: Surah ,
columnAyah: Ayah,
columnJuz : Juz
};
if (id != null) {
map[columnId] = id;
}
return map;
}
}
uj5u.com熱心網友回復:
也許問題來自您沒有使用的事實row
Future<List<Map<String, dynamic>>>_readfav() async {
DatabaseHelper helper = DatabaseHelper.instance;
List<Bookmark> savedbk = [];
final favs = await helper.queryAllRows();
favs.forEach((row) => savedbk.add(Bookmark())); <-- here
print( savedbk[0].Ayah.toString());
return favs;
}
這樣做favs.forEach((row) => savedbk.add(Bookmark()));只會創建一個空Bookmark實體串列。
也許你應該favs.forEach((row) => savedbk.add(Bookmark.fromMap(row)));根據你的建構式使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/452132.html
