getter 'name' 没有为类型 'ConfirmedPasswordValidationError' 定义
The getter 'name' isn't defined for the type 'ConfirmedPasswordValidationError'
当我想从 confirm_password 文件中获取名称时,出现此错误:The getter 'name' isn't defined for the type 'ConfirmedPasswordValidationError'.
实际上我对电子邮件和密码做了同样的事情,但这里有些地方不对。
我的 confirmPasswordInputField 代码在这里:
Widget confirmPasswordInputField() {
return BlocBuilder<SignUpCubit, SignUpState>(
buildWhen: (previous, current) =>
previous.confirmPassword != current.confirmPassword,
builder: (context, state) {
return AuthTextField(
padding: const EdgeInsets.symmetric(vertical: 20),
hint: 'Confirm Password',
isPasswordField: true,
keyboardType: TextInputType.text,
**error: state.confirmPassword.error?.name,**(here)
onChanged: (confirmPassword) =>
context.read<SignUpCubit>().confirmPasswordChanged(confirmPassword),
);
},
);
}
还有我上面提到的 confirm_password 文件,在这里:
enum ConfirmedPasswordValidationError {
invalid,
mismatch,
}
class ConfirmPassword extends FormzInput<String, ConfirmedPasswordValidationError> {
final String password;
const ConfirmPassword.pure({
this.password = ''
}) : super.pure('');
const ConfirmPassword.dirty({
required this.password,
String value = ''
}) : super.dirty(value);
@override
ConfirmedPasswordValidationError? validator(String value) {
if (value.isEmpty) {
return ConfirmedPasswordValidationError.invalid;
}
return password == value
? null
: ConfirmedPasswordValidationError.mismatch;
}
}
extension Explanation on ConfirmedPasswordValidationError {
String? get name {
switch(this) {
case ConfirmedPasswordValidationError.mismatch:
return 'passwords must match';
default:
return null;
}
}
}
这里我定义了 getter 名称为‘name’。但是当我调用它时,它给出了一个错误。
简单的解决方案:
import 'package:bloc_login/domain/auth_models/confirm_password.dart';
不要忘记导入你的包..
当我想从 confirm_password 文件中获取名称时,出现此错误:The getter 'name' isn't defined for the type 'ConfirmedPasswordValidationError'.
实际上我对电子邮件和密码做了同样的事情,但这里有些地方不对。
我的 confirmPasswordInputField 代码在这里:
Widget confirmPasswordInputField() {
return BlocBuilder<SignUpCubit, SignUpState>(
buildWhen: (previous, current) =>
previous.confirmPassword != current.confirmPassword,
builder: (context, state) {
return AuthTextField(
padding: const EdgeInsets.symmetric(vertical: 20),
hint: 'Confirm Password',
isPasswordField: true,
keyboardType: TextInputType.text,
**error: state.confirmPassword.error?.name,**(here)
onChanged: (confirmPassword) =>
context.read<SignUpCubit>().confirmPasswordChanged(confirmPassword),
);
},
);
}
还有我上面提到的 confirm_password 文件,在这里:
enum ConfirmedPasswordValidationError {
invalid,
mismatch,
}
class ConfirmPassword extends FormzInput<String, ConfirmedPasswordValidationError> {
final String password;
const ConfirmPassword.pure({
this.password = ''
}) : super.pure('');
const ConfirmPassword.dirty({
required this.password,
String value = ''
}) : super.dirty(value);
@override
ConfirmedPasswordValidationError? validator(String value) {
if (value.isEmpty) {
return ConfirmedPasswordValidationError.invalid;
}
return password == value
? null
: ConfirmedPasswordValidationError.mismatch;
}
}
extension Explanation on ConfirmedPasswordValidationError {
String? get name {
switch(this) {
case ConfirmedPasswordValidationError.mismatch:
return 'passwords must match';
default:
return null;
}
}
}
这里我定义了 getter 名称为‘name’。但是当我调用它时,它给出了一个错误。
简单的解决方案:
import 'package:bloc_login/domain/auth_models/confirm_password.dart';
不要忘记导入你的包..