Я использую RiverPod для управления состоянием.
class SignInStateNotifier extends StateNotifier<SignInFormStates> {
SignInStateNotifier(this._authFacade) : super(SignInFormStates.initial());
final IAuthFacade _authFacade;
void mapEventToState(SignInFormEvents signInFormEvents) {
state = signInFormEvents.when(
emailChanged: (value) => state.copyWith(
emailAddress: EmailAddress(value),
authFailureOrSuccess: none(),
),
passwordChanged: (value) => state.copyWith(
password: Password(value),
authFailureOrSuccess: none(),
),
signInWithEmailAndPasswordPressed: () async* {
yield* _performActionOnAuthFacade(
_authFacade.signInWithEmailAndPassword);
});
}
Я получаю сообщение об ошибке здесь
signInWithEmailAndPasswordPressed: () async* {
yield* _performActionOnAuthFacade(
_authFacade.signInWithEmailAndPassword);
});
Тип аргумента «Функция потока()» не может быть назначен типу параметра «Функция SignInFormStates()».
Моя функция __performActionOnAuthFacade
Stream<SignInFormStates> _performActionOnAuthFacade(
Future<Either<AuthFailure, Unit>> Function({
@required EmailAddress emailAddress,
@required Password password,
})
forwardCall,
) async* {
Either<AuthFailure, Unit> failureOrSuccess;
if (state.emailAddress.isValid() && state.password.isValid()) {
yield state.copyWith(
isSubmitting: true,
authFailureOrSuccess: none(),
);
failureOrSuccess = await _authFacade.registerWithEmailAndPassword(
emailAddress: state.emailAddress, password: state.password);
}
yield state.copyWith(
isSubmitting: false,
showErrorMessage: true,
authFailureOrSuccess: optionOf(failureOrSuccess));
}
Пожалуйста, дайте решение, чтобы решить эту ошибку. Заранее спасибо.