Можно ли установить ошибки FormControl в FormGroup с ограниченным состоянием с помощью @ngxs/form-plugin?
Я добавляю NGXS в приложение, и мне интересно, возможно ли обновить ошибки набора для определенного FormControl.
Вот как выглядел мой компонент до NGXS:
@Component({
selector: 'app-login-page',
templateUrl: './login-page.component.html',
styleUrls: ['./login-page.component.scss']
})
export class LoginPageComponent
public loginForm: FormGroup;
/*Other stuff...*/
public login(): void {
this.authenticationService.login(this.loginForm.get('emailAddress').value, this.loginForm.get('password').value)
.subscribe(
response => {
this.router.navigate([this.returnUrl]);
},
error => {
this.loginForm.get('password').setErrors({incorrect: true}) //<-- Set error in form
});
}
}
Затем я могу проверить наличие ошибок, используя:
if (this.loginForm.controls['password'].errors.incorrect) {
//Do something....
}
После того, как я добавил NGXS, я заменил первый фрагмент следующим:
@Action(AuthenticationFailure)
authenticationFailure(context: StateContext<IAuthenticationState>, action: AuthenticationFailure) {
let state: IAuthenticationState = context.getState();
//Setting error does not work this way
context.setState({
...state,
loginForm: {
...state.loginForm,
errors: {
...state.loginForm.errors,
password: {incorrect: true}
}
}
})
}
Я ожидал, что это обновит ошибки в loginForm
в моем компоненте, но это не так. Можно ли сделать это как-то иначе?