Asynchronous 异步对象不';I don’我不能注册获取它
我正在为国际奥委会使用get_it。但是,当我尝试使用异步调用注册bean时,我的应用程序会抛出一个异常。 引发异常的函数:Asynchronous 异步对象不';I don’我不能注册获取它,asynchronous,flutter,dart,dependency-injection,inversion-of-control,Asynchronous,Flutter,Dart,Dependency Injection,Inversion Of Control,我正在为国际奥委会使用get_it。但是,当我尝试使用异步调用注册bean时,我的应用程序会抛出一个异常。 引发异常的函数: import 'package:elpee/service/localstorage_service.dart'; import 'package:get_it/get_it.dart'; GetIt locator = GetIt(); Future setupLocator() async { LocalStorageService.getInstance()
import 'package:elpee/service/localstorage_service.dart';
import 'package:get_it/get_it.dart';
GetIt locator = GetIt();
Future setupLocator() async {
LocalStorageService.getInstance().then((storageService) {
locator.registerSingleton(storageService);
});
}
错误:
异常:LocalStorageService类型的对象未在GetIt内部注册
如果有人能帮我,我将不胜感激:-)你试图用错误的方式来使用它。查到
首先-get_它是单例的,因此不要使用构造函数,而是
GetIt locator = GetIt.instance;
第二,将LocalStorageService实现为一个普通类,并让用户将其作为单例提供:
void main()
...
void setupLocator() {
locator.registerLazySingleton(LocalStorageService());
}
}
使用IoC的全部功能为您的storageservice定义接口/抽象类定义并提供接口的实现
void setupLocator() {
locator.registerLazySingleton<IStorageService>(LocalStorageService());
}
void setupLocator(){
registerLazySingleton(LocalStorageService());
}
您试图以错误的方式使用它。查到
首先-get_它是单例的,因此不要使用构造函数,而是
GetIt locator = GetIt.instance;
第二,将LocalStorageService实现为一个普通类,并让用户将其作为单例提供:
void main()
...
void setupLocator() {
locator.registerLazySingleton(LocalStorageService());
}
}
使用IoC的全部功能为您的storageservice定义接口/抽象类定义并提供接口的实现
void setupLocator() {
locator.registerLazySingleton<IStorageService>(LocalStorageService());
}
void setupLocator(){
registerLazySingleton(LocalStorageService());
}
谢谢你,伙计。前一段时间我以不同的方式解决了这个问题,但是这个解决方案看起来更好,所以我会看看是否还能从中受益;在main()中调用setupLocator(),并在调试中启动和停止应用程序。错误应该消失。不要热装,谢谢,伙计。前一段时间我以不同的方式解决了这个问题,但是这个解决方案看起来更好,所以我会看看是否还能从中受益;在main()中调用setupLocator(),并在调试中启动和停止应用程序。错误应该消失。不要热装。