dart 水合块:需要参数'storageDirectory'

ykejflvf  于 2022-12-06  发布在  其他
关注(0)|答案(2)|浏览(99)

我将hydrated_bloc从6.1.0更新到最新的7.0.1,并在以下位置收到警告:

HydratedBloc.storage = await HydratedStorage.build(); The parameter 'storageDirectory' is required.

当我更改为新文档建议的内容时

HydratedBloc.storage = await HydratedStorage.build(
storageDirectory: await getTemporaryDirectory(),); The function 'getTemporaryDirectory' isn't defined.

我也试探着:

HydratedBloc.storage = await HydratedStorage.build(storageDirectory: await getApplicationDocumentsDirectory(),); The function 'getApplicationDocumentsDirectory' isn't defined
lrl1mhuk

lrl1mhuk1#

getTemporaryDirectorygetApplicationDocumentsDirectory都是path_provider包的一部分,因此必须将其导入到主.dart文件中

gjmwrych

gjmwrych2#

是的,您需要路径Provider Flutter package,但您可能也会遇到此错误“StorageNotFound(Storage was access before it was initialized),或在Android Studio

中没有为类型'HydratedBloc'定义setter 'storage',请按以下方式定义它:`

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  final storage = await HydratedStorage.build(
    storageDirectory: await getApplicationDocumentsDirectory(),
  );
  HydratedBlocOverrides.runZoned(
    () => runApp(MyApp(
      appRouter: AppRouter(),
      connectivity: Connectivity(),
    )),
    storage: storage,
  );
}

你可以得到the full code here

相关问题