android - 初始化程序类型“AuthRepository?” 无法在颤振中分配给字段类型“AuthRepository”
问题描述
错误出现在 authRepository 部分的第 6 行(在第一个代码片段或主代码部分中)。
主要代码 -
class AuthBloc extends Bloc<AuthEvent, AuthState> {
final AuthRepository _authRepository;
var v;
AuthBloc({
@required AuthRepository? authRepository
}) : _authRepository = authRepository super(AuthState.unknown());
这是AuthRepository
-
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;
解决方案
您正在尝试将可空变量分配给不可空变量。对构造函数使用语法糖(this.var
语法)并使用位置参数。
class AuthBloc extends Bloc<AuthEvent, AuthState> {
final AuthRepository _authRepository;
var v;
AuthBloc(this._authRepository) : super(AuthState.unknown());
}
其他解决方案
如果您仍想将所需的命名参数与私有成员一起使用,请创建_authRepository
一个可为空的变量,这将需要在您使用该变量 ( _authRepository
) 的任何地方进行更改。
class AuthBloc extends Bloc<AuthEvent, AuthState> {
final AuthRepository? _authRepository;
var v;
AuthBloc({
@required AuthRepository? authRepository
}) : _authRepository = authRepository super(AuthState.unknown());
}
推荐阅读
- javascript - 增长和淡化 onclick
- sql - 使用约束在sql中创建新表
- android - 调用函数更新应用时,Ionic Force App Update 崩溃
- linux - getopts在选项之前有参数时行不通
- java - 将 Java 十六进制转换为十进制时出现错误
- algorithm - O(1) 时间复杂度中以下 ncr 系列的总和
- html - 移动设备上的引导堆栈元素顶部和底部,桌面上的侧边栏
- android - Firebase Android 重置后发送新密码
- java - H2 在内存中创建服务器以通过 Shell 访问
- vagrant - Vagrant 同步文件夹导致内容被删除