Android 初始值设定项类型';AuthRepository?&x27;can';不能分配给字段类型';AuthRepository';飘飘然
错误出现在authRepository部分的第6行(在第一个代码段或主代码部分) 主代码-Android 初始值设定项类型';AuthRepository?&x27;can';不能分配给字段类型';AuthRepository';飘飘然,android,firebase,flutter,dart,dart-null-safety,Android,Firebase,Flutter,Dart,Dart Null Safety,错误出现在authRepository部分的第6行(在第一个代码段或主代码部分) 主代码- class AuthBloc extends Bloc<AuthEvent, AuthState> { final AuthRepository _authRepository; var v; AuthBloc({ @required AuthRepository? authRepository }) : _authRepository = authRepositor
class AuthBloc extends Bloc<AuthEvent, AuthState> {
final AuthRepository _authRepository;
var v;
AuthBloc({
@required AuthRepository? authRepository
}) : _authRepository = authRepository super(AuthState.unknown());
您正在尝试将可为空的变量分配给不可为空的变量。对构造函数使用语法糖(
this.var
syntax),并使用位置参数
class AuthBloc扩展了Bloc{
最终AuthRepository\u AuthRepository;
var v;
AuthBloc(this.\u authRepository):超级(AuthState.unknown());
}
其他解决方案
如果仍要对私有成员使用所需的命名参数,请将\u authRepository
设置为可为空的变量,这将需要在使用该变量的任何位置进行更改(\u authRepository
)
class AuthBloc扩展了Bloc{
最终AuthRepository?\u AuthRepository;
var v;
AuthBloc({
@必需的AuthRepository?AuthRepository
}):_authRepository=authRepository super(AuthState.unknown());
}
然后此错误出现在authRepository的第6行(在您的代码中)-参数“authRepository”的值不能为“null”,因为其类型不同,但隐式默认值为“null”。已更新我的答案。
class AuthRepository extends BaseAuthRepository {
final FirebaseFirestore _firebaseFirestore;
final auth.FirebaseAuth _firebaseAuth;
AuthRepository({
FirebaseFirestore? firebaseFirestore,
auth.FirebaseAuth? firebaseAuth,
}) : _firebaseFirestore = firebaseFirestore ?? FirebaseFirestore.instance,
_firebaseAuth = firebaseAuth ?? auth.FirebaseAuth.instance;
class AuthBloc extends Bloc<AuthEvent, AuthState> {
final AuthRepository? _authRepository;
var v;
AuthBloc({
@required AuthRepository? authRepository
}) : _authRepository = authRepository super(AuthState.unknown());
}