Android 如何向changenotifier注入依赖项并在Flatter中的main.dart中注册提供程序
我在我的应用程序中使用提供程序进行状态管理,在下面的提供程序类中,我将依赖项SignWithFacebook注入到提供程序类中所需的SignInWithFacebookProvider,并且我在运行main.dart中的runApp函数之前注册了依赖项,但我收到了此错误Android 如何向changenotifier注入依赖项并在Flatter中的main.dart中注册提供程序,android,flutter,dart,iso,Android,Flutter,Dart,Iso,我在我的应用程序中使用提供程序进行状态管理,在下面的提供程序类中,我将依赖项SignWithFacebook注入到提供程序类中所需的SignInWithFacebookProvider,并且我在运行main.dart中的runApp函数之前注册了依赖项,但我收到了此错误 Failed assertion: line 13 pos 76: 'signInWithFacebook != null': is not true. 如果我从提供程序构造函数中删除断言,它将抛出null异常 我的提供者类
Failed assertion: line 13 pos 76: 'signInWithFacebook != null': is not true.
如果我从提供程序构造函数中删除断言,它将抛出null异常
我的提供者类
class SignInWithFaceBookProvider extends ChangeNotifier {
final SignInWithFacebook signInWithFacebook;
SignInWithFaceBookProvider({@required this.signInWithFacebook}) : assert(signInWithFacebook != null);
Future<Either<Failure, UserEntity>> signIn() async {
return await signInWithFacebook(NoParams());
}
}
在应用程序启动之前注册依赖项的My init方法
final sl = GetIt.instance;
Future<void> init() async {
//use cases
sl.registerFactory(
() => SignInWithFacebook(
signInRepository: sl(),
),
);
// Features
sl.registerFactory(
() => SignInWithFaceBookProvider(
signInWithFacebook: sl(),
),
);
//repositories
sl.registerLazySingleton<SignInRespository>(
() => SignInRepositoryImpl(
networkInfo: sl(),
remoteDataSource: sl(),
),
);
final sl=GetIt.instance;
Future init()异步{
//用例
注册工厂(
()=>使用Facebook登录(
符号还原:sl(),
),
);
//特征
注册工厂(
()=>使用FaceBookProvider登录(
使用Facebook登录:sl(),
),
);
//存储库
sl.registerLazySingleton(
()=>SignenRepositoryImpl(
networkInfo:sl(),
remoteDataSource:sl(),
),
);
PS:这个init方法在开始呈现UI之前被调用
final sl = GetIt.instance;
Future<void> init() async {
//use cases
sl.registerFactory(
() => SignInWithFacebook(
signInRepository: sl(),
),
);
// Features
sl.registerFactory(
() => SignInWithFaceBookProvider(
signInWithFacebook: sl(),
),
);
//repositories
sl.registerLazySingleton<SignInRespository>(
() => SignInRepositoryImpl(
networkInfo: sl(),
remoteDataSource: sl(),
),
);