首页 > 解决方案 > sqflite 首次打开时不提取数据

问题描述

我添加新数据,然后重新打开应用程序,但不显示我上次添加的数据。但如果点击输入我的数据来了。如何解决这个问题。我的代码:https ://github.com/basriyildiz/yildiz/blob/master/lib/screens/maliyet_hesaplama.dart

如果你想检查我的 db_helper:https ://github.com/basriyildiz/yildiz/blob/master/lib/utils/db_helper.dart

非常感谢你,对不起我的英语。

标签: flutterdartsqflite

解决方案


我认为问题出在这里。

_databaseHelper.tumMaliyetler().then((tumAnalizleriTutanMapListesi) {
  for (Map<String, dynamic> okunanAnalizMapi
      in tumAnalizleriTutanMapListesi) {
    maliyetListesi
        .add(Maliyet.dbdenOkudugunMapiObjeyeDonustur(okunanAnalizMapi));
  }

  debugPrint("adas");
  debugPrint(malzemeAdi.text.toString());
});

你在这里解决了一个未来,这意味着这个代码将在未来“某个时候”执行。

我会尝试这里显示的解决方案:https ://stackoverflow.com/a/51901192/9479695

@override
 void initState() {
   super.initState();
   asyncMethod();
}

void asyncMethod() async {
  final tumAnalizleriTutanMapListesi = await _databaseHelper.tumMaliyetler();
  // ... fill maliyetListesi here
}

我还建议在这里https://dart.dev/codelabs/async-await阅读有关 dart 中的 async / await 的信息

还有关于如何在 Flutter 中与 StreamBuilder 一起使用它们https://api.flutter.dev/flutter/widgets/StreamBuilder-class.html和 FutureBuilder 这里https://api.flutter.dev/flutter/widgets/FutureBuilder-类.html


推荐阅读