问题描述
我想在 get_it 包中注册 SharedPrefences 对象,以便从应用程序的各个地方访问它,而不是使 main() 异步。
- 这是正确的方式吗?
- 我该怎么做?
我就是这样做的,但它引发了异常。代码:
appLocator.registerLazySingletonAsync<SharedPreferences>(() async {
final sh = await SharedPreferences.getInstance();
return sh;
});
异常:
未处理的异常:'package:get_it/get_it_impl.dart':失败 断言:第 342 行 pos 14:'instanceFactory.isReady':您试图 访问尚未准备好的 SharedPreferences 实例
解决方法
您有什么不想让主异步的原因吗?使您的主要方法异步并没有错。您将在大多数项目中看到它。
我是一名专业的 Flutter 开发人员并且使用 get_it 并且它的影响为零,所以我不明白你为什么不这样做。