flutter - Flutter - get_it 错误:参数无效(AppModel 类型的对象未在 GetIt 中注册
问题描述
我在版本 4 中使用 Flutter 和包 get_it。
在我的main.dart
我有:
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
_registerAppLevelObjects();
_resetInProgressFlag();
await DotEnv().load('.env');
runApp(MyApp());
}
Future<void> _registerAppLevelObjects() async {
di.registerSingleton(AppDatabase.getInstance());
di.registerSingleton(DeviceInfoPlugin());
di.registerSingleton(DeviceInfoRepository(di.get()));
di.registerSingleton(Api(di.get()));
di.registerSingleton(DossierRepository(di.get(), di.get()));
di.registerSingleton(CenterRepository(di.get()));
di.registerSingleton(SharedPreferences.getInstance());
}
Future<void> _resetInProgressFlag() async {
final repo = di.get<DossierRepository>();
repo.resetInProgressFlag();
}
我有这个错误:
在 GetIt 中没有注册类型 Api。
只DossierRepository
依赖Api。我认为通话顺序很好。
我错过了什么?
解决方案
您应该在异步方法之前使用 await。
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await _registerAppLevelObjects();
await _resetInProgressFlag();
await DotEnv().load('.env');
runApp(MyApp());
}
推荐阅读
- java - 是否可以将文本从edittext传递到webview?
- python - 如何覆盖 AttributeError 以使我的脚本继续
- angular - 如何在 Angular 5 中使用路由实现动态组件?
- git - git不接受ssl证书
- php - php error_log("") 下面需要
- docker - 如何改进 Kubernetes 集群容器中的随机数生成?
- python - 如何通过用户的输入在字典中创建值?
- c++ - 在将映射传递给函数 C++ 时查找分段错误
- python - Python Mysql在不同的表上选择相同的值
- excel - Heading name format not picked up in Match/Index Function with VBA