Olá. Gostaria de compartilhar aqui a solução que encontrei para o erro "TypeError: Cannot read property 'length' of undefinied" que eu estava obtendo ao testar as validações. Basicamente, o objeto "erros", que recebia a validação através do método "this.valida" não estava sendo isntanciado.
Aqui está a minha função "this.valida" antes da correção:
this.valida = (parametros)=>{
this.validacao.filter(campo=>{
const { nome } = campo
const parametro = parametros[nome]
return !campo.valido(parametro)
}
)
}
E assim ela ficou após a correção:
this.valida = (parametros)=>{
return this.validacao.filter(campo=>{
const { nome } = campo
const parametro = parametros[nome]
return !campo.valido(parametro)
}
)
}
Basicamente, a diferença entre elas é que na correção eu realizei um "return" no método "filter". Isso foi necessário porque utilizei o abre e fecha de chaves na arrow-function, então é necessário indicar qual será o retorno daquele bloco de execução. Como na aula a professora não utilizou essas chaves, ele retornou diretamente o resultado do filtro.
Espero poder estar ajudando com a dúvida de alguém. Até mais!