Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Funções 'valida' e "metodoValidacao"

Na transcrição:

"Continuando, usaremos o operador if para verificarmos se o retorno de metodoValidacao(campoValor, [], state) é true. Em caso positivo, nosso formulário é inválido, e escreveremos a mensagem "FORM INVÁLIDO" com console.log(), retornando false. Do contrário, escreveremos "FORM VÁLIDO" e retornaremos true."

No código:

class FormValidator {

    constructor(validacao){
        this.validacao = validacao;
    }
    valida(state) {
       const campoValor = state[this.validacao.campo.toString()];
       const metodoValidacao = validador[this.validacao.metodo];

       if(metodoValidacao(campoValor, [], state) === true){
           console.log("FORM INVÁLIDO");
           return false;
       }else{
           console.log("FORM VÁLIDO");
           return true;
       }
    }
}

export default FormValidator;

Não entendi o quê os métodos "metodoValidacao", e 'valida' fazem, e as funções de seus parâmetros.

3 respostas

Boa noite, Marcelo! Como vai?

O método valida() irá validar o formulário de acordo com o estado atual dele ( do formulário ), usando pra isso o parâmetro state. Já o metodoValidacao é o método de validação em questão vindo da biblioteca validator. No caso dessa aula que vc linkou ao seu tópico, o método de validação é o isEmpty. Por fim, mas não menos importante, de acordo com o que o instrutor diz durante a aula, os parâmetros passados para o metodoValidacao são, respectivamente, o nome do campo a ser validado, um array de configurações opcionais ( o array está vazio pois não há nenhuma configuração extra sendo utilizada ) e o estado do formulário.

Todos esses detalhes são mostrados ao longo desse capítulo do curso!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Nesse código:

if(metodoValidacao(campoValor, [], state) === true){
           console.log("FORM INVÁLIDO");
           return false;
       }else{
           console.log("FORM VÁLIDO");
           return true;
       }

Por que passar 3 argumentos? Por que passar a variável 'state'?

Que eu saiba o método é o 'isEmpty', e ele recebe um valor e alternativamente um array de opções. Não entendi qual a função do 'state' nos argumentos da função 'metodoValidacao'.

solução!

Marcelo, boa tarde!

Lendo a documentação, de fato a função só recebe dois parâmetros, tanto que, qualquer valor a mais que seja passado não irá alterar o funcionamento da mesma.

Como no teste abaixo:

const mostra = (nome) => {
    console.log(nome);
}

mostra("Felipe", 4);

Não é retornado nenhum erro.

Espero ter ajudado e bons estudos!