У меня проблема при попытке отредактировать пользователя. Я решил снова загрузить всех пользователей после успешного обновления. Однако, если есть ошибка, я не хочу, чтобы форма сбрасывалась и модал исчезал. Моя проблема, когда я пытаюсь обновить пользователя, и он возвращает ошибку. OfActionSuccessful по-прежнему срабатывает даже при возникновении ошибки. Пожалуйста, смотрите мой код ниже.
Component.ts
onEditUser(form: FormGroup) {
const formData = {
id: form.value.id,
name: form.value.name,
email: form.value.email
};
console.log(formData);
if (form.valid) {
swal({
title: 'Update',
text: 'Are you sure you want to update changes?',
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#0CC27E',
cancelButtonColor: '#FF586B',
confirmButtonText: 'Confirm',
cancelButtonText: 'Cancel',
confirmButtonClass: 'btn btn-success btn-raised mr-5',
cancelButtonClass: 'btn btn-danger btn-raised',
buttonsStyling: false
}).then(result => {
console.log(result);
if (result.value) {
this.store.dispatch(new UpdateUser(formData));
this.actions$.pipe(ofActionSuccessful(UpdateUser)).subscribe(() =>
form.reset(),
this.modalReference.close()
);
}
});
}
}
State.ts
@Action(UpdateUser)
updateTodo({ getState }: StateContext<UserStateModel>, { payload }: UpdateUser) {
return this.usersService.updateUser(payload).pipe(
tap((result) => {
console.log(result);
const state = getState();
this.store.dispatch(new GetUsers);
}),
catchError(err => {
console.log(err);
return throwError(err);
})
);
}