是否可以在不使用FutureBuilder的情况下在Flutter中监听配置单元数据库数据更改?

wz3gfoph  于 2022-11-25  发布在  Flutter
关注(0)|答案(1)|浏览(106)

我正在使用Flutter Hive数据库为我的项目使用Singleton模式。但是我在Hive数据库中的数据更改中卡住了。每次我向Hive添加新数据时,我都需要刷新并再次调用Hive数据库助手类。但是我想在不使用Hive数据库的情况下,通过提供程序侦听Flutter中的数据更改。

g0czyy6m

g0czyy6m1#

您只需要使用并为您的特定Hive框设置一个listenable(),并且忘记手动更新状态,每次您的框更新时,它将自动刷新。
例如,我会说我有一个名为activities的Hive框,我可以这样做:

ValueListenableBuilder<Box>(
      valueListenable: Hive.box('activities').listenable(),
      builder: (context, box, widget) {
        return Center(
          child: Switch(
            value: box.get('didAgreeOnConditions', defaultValue: false),
            onChanged: (val) {
              box.put('didAgreeOnConditions', val);
            },
          ),
        );
      },
    ),

这是一个Switch小部件,每次我尝试切换它时,它都会自动更新其状态,因为Hive Box上的侦听器会注意到Box中的某些内容发生了更改(因为我使用了box.put('didAgreeOnConditions', val);
从这里查看完整的Hive文档
希望这对你有帮助!

相关问题