微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter:添加到 Hive 框的对象的字段在应用程序重启后返回 null

如何解决Flutter:添加到 Hive 框的对象的字段在应用程序重启后返回 null

我正在使用 Flutter 和 Hive 创建一个应用程序,但我还不熟悉它。
我需要在其中创建一个初始帐户,因此我为此创建了一个 Hive 框,并尝试在该框中保存一个帐户对象。
我检查添加打印并正确地将对象保存在框中。但是当我重新启动应用程序时,打印不再返回值。 Object 还在,但只有 String name 字段有值,其他两个是空值。
为什么重启后有些字段为空?

第一次运行后的输出

{"error": {
    "message": "(#100) param data must be an array.","type": "OAuthException","code": 100,"fbtrace_id": "Arug9LHzE4FKTY67LrqQZiJ"
  }
}

重启后输出

I/Flutter (14014): wallet
I/Flutter (14014): Currencies.USD
I/Flutter (14014): 0.0

主要代码

I/Flutter (14014): wallet
I/Flutter (14014): null
I/Flutter (14014): null

帐户类别代码

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  Directory document = await getApplicationDocumentsDirectory();

  Hive.registeradapter(CurrenciesAdapter());
  Hive.registeradapter(AccountAdapter());
  Hive.init(document.path);

  final accountBox = await Hive.openBox<Account>('accounts');

  if (accountBox.length == 0) { // default wallet
    Account wallet = new Account("wallet",Currencies.USD);
    accountBox.add(wallet);
  }

  print(accountBox.getAt(0).name.toString());
  print(accountBox.getAt(0).currency.toString());
  print(accountBox.getAt(0).cashAmount.toString());

  runApp(MyApp());
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。