1
I own this Forms reactive:
const createFormGroup = (dataItem?: Usuario) => {
if (dataItem) {
return new FormGroup({
id: new FormControl(dataItem.id),
nome: new FormControl(dataItem.nome),
cidade: new FormControl(dataItem.cidade)
});
}
return new FormGroup({
id: new FormControl(),
nome: new FormControl(''),
cidade: new FormControl('')
});
};
My template:
<form (ngSubmit)="save()" [formGroup]="formGroup">
<input formControlName="nome" type="text" class="form-control" id="inputName" placeholder="Nome">
<input formControlName="cidade" type="text" class="form-control" id="exampleInputPassword1"
<button id="my-element" type="submit" class="btn btn-primary">Complete
</button>
</form>
After clicking the Submit button, I perform a Dispatch that saves my data using an ngrx Effect:
save() {
const user = this.formGroup.value;
if (user.id === null) {
this.store.dispatch(createUser({ user: user }));
} else {
this.store.dispatch(updateUser({ user: user }));
}
}
My Effect:
public saveUser$ = createEffect(() =>
this.actions$.pipe(
ofType(createUser),
switchMap((action) =>
this.usuarioService.save(action.user).pipe(
map(() => loadUsers()),
catchError((error) => of(loadUsers()))
)
)
)
);
How can I make to clear my form when my Effect does not fall into the catchError()
?