Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asynchronous 异步对象不';I don’我不能注册获取它_Asynchronous_Flutter_Dart_Dependency Injection_Inversion Of Control - Fatal编程技术网

Asynchronous 异步对象不';I don’我不能注册获取它

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()

我正在为国际奥委会使用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().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(),并在调试中启动和停止应用程序。错误应该消失。不要热装。