【发布时间】:2022-07-05 03:21:34
【问题描述】:
我正在尝试使用 hydrad bloc 让我的状态持续存在,但它不起作用。当我重新启动应用程序时,状态不会持续
这是我必须启动应用程序的代码:
void bootstrap() async {
WidgetsFlutterBinding.ensureInitialized();
final storage = await HydratedStorage.build(
storageDirectory: await getApplicationDocumentsDirectory(),
);
HydratedBlocOverrides.runZoned(
() => runApp(
RepositoryProvider<void>(
create: (context) => DatabaseCubit(),
child: const RunApp(),
),
),
storage: storage,
);
}
这是肘中的相关代码:
class DatabaseCubit extends HydratedCubit<DatabaseState>{
DatabaseCubit() : super(databaseInitial);
@override
DatabaseState? fromJson(Map<String, dynamic> json) {
return DatabaseState.fromMap(json);
}
@override
Map<String, dynamic> toJson(DatabaseState state) {
return state.toMap();
}
我已经设置了单元测试,以确保我的 toMap 和 fromMap 函数正常工作。测试通过了,下面是它们的代码:
test('Database state should be converted to and from json', () {
final databaseStateAsJson = databaseState.toMap();
final databaseStateBackToNormal =
DatabaseState.fromMap(databaseStateAsJson);
expect(databaseStateBackToNormal, databaseState);
});
请告诉我我做错了什么
【问题讨论】:
标签: dart flutter-bloc