Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Validações do FormGroup retornando Erros (Expected validator to return Promise or Observable)

Na aula 04.02 (Validação de formulário assíncrono / Validação Padrão), são implementadas no Template de Formulário de Novo Usuário validações para os campos.

Um dos campos, o de e-Mail, tem mais de uma validação, porém apenas uma delas está funcionando, a primeira a ser declarada, de campo Required.

Ao preencher um caractar no campo, some a mensagem de campo obrigatório, mas a segunda validação (a de formato do eMail), não é executada e nenhuma mensagem é exibida. Além disso, no Console do navegador é exibida a mensagem de erro abaixo:

ERROR Error: Expected validator to return Promise or Observable.
    at toObservable (forms.mjs:797:15)
    at Array.map (<anonymous>)
    at FormControl._composedAsyncValidatorFn (forms.mjs:864:75)
    at FormControl._runAsyncValidator (forms.mjs:2540:43)
    at FormControl.updateValueAndValidity (forms.mjs:2514:22)
    at FormControl.setValue (forms.mjs:2937:14)
    at updateControl (forms.mjs:1739:13)
    at DefaultValueAccessor.onChange (forms.mjs:1724:13)
    at DefaultValueAccessor._handleInput (forms.mjs:241:18)
    at DefaultValueAccessor_input_HostBindingHandler (forms.mjs:255:103)

Qual a causa desses 2 problemas e como resolve-los?

1 resposta
solução!

Descobri a solução.

No Componente de Novo Usuário, no método ngOnInit() havia sido implementadas validações no FormBuilder, e eu havia cometido um erro e implementado da seguinte forma:

this.formBuilder.group({
            email:
                [
                    '',
                        Validators.required,
                        Validators.email
                ],
... // Continuação omitida

Para solucionar, é necessário inserir um Array como segundo elemento do array primário, e é neste Array secundário conterá os Validators, ficando da seguinte forma:

this.formBuilder.group({
            email:
                [
                    '',
                    [
                        Validators.required,
                        Validators.email
                    ]
                ],

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software