我正在使用Flutter Hive数据库为我的项目使用Singleton模式。但是我在Hive数据库中的数据更改中卡住了。每次我向Hive添加新数据时,我都需要刷新并再次调用Hive数据库助手类。但是我想在不使用Hive数据库的情况下,通过提供程序侦听Flutter中的数据更改。
g0czyy6m1#
您只需要使用并为您的特定Hive框设置一个listenable(),并且忘记手动更新状态,每次您的框更新时,它将自动刷新。例如,我会说我有一个名为activities的Hive框,我可以这样做:
Hive
listenable()
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文档希望这对你有帮助!
Switch
box.put('didAgreeOnConditions', val);
1条答案
按热度按时间g0czyy6m1#
您只需要使用并为您的特定
Hive
框设置一个listenable()
,并且忘记手动更新状态,每次您的框更新时,它将自动刷新。例如,我会说我有一个名为activities的Hive框,我可以这样做:
这是一个
Switch
小部件,每次我尝试切换它时,它都会自动更新其状态,因为Hive
Box上的侦听器会注意到Box中的某些内容发生了更改(因为我使用了box.put('didAgreeOnConditions', val);
)从这里查看完整的
Hive
文档希望这对你有帮助!