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';

不要忘记导入你的包..