Olá! Após fazer as alterações conforme a aula o Toast não exibe as mensagens de erro. Ao invés na mensagem é exibido undefined
Alguém poderia me dar um apoio? Meu código esta aqui https://github.com/candinhojr/learn-react
Obrigado!
Olá! Após fazer as alterações conforme a aula o Toast não exibe as mensagens de erro. Ao invés na mensagem é exibido undefined
Alguém poderia me dar um apoio? Meu código esta aqui https://github.com/candinhojr/learn-react
Obrigado!
Olá Candinho, tudo bem com você?
Peço perdão pela demora em te responder, mas dando uma analisada no seu projeto foi um erro bem simples, veja:
Quando você criou o validador de formulário, foi dessa maneira:
validacao[regra.campo] = {
isInvalid: true,
message: regra.mensagem
}Ou seja, cada campo tem 2 atributos: isInvalid e message, entretanto na hora de fazer o reduce, você fez da seguinte maneira:
(erros, campo) => erros + campo.mensagem + '. ',Porém, não há esse atributo mensagem (por isso o undefined), modificando para message, da seguinte maneira:
(erros, campo) => erros + campo.message + '. ',Já irá funcionar corretamente!
Uma dica que pode te auxiliar com esses erros é substituir momentaneamente o reduce em uma linha, por um em bloco e testar as variáveis, por exemplo:
const erros = camposInvalidos.reduce(
(erros, campo) => {
console.log(erros);
console.log(campo);
erros + campo.message + '. '
},
''
)AI podemos ter um feedback de se o nome das propriedades estão corretos, por exemplo:
Object { isInvalid: true, message: "Informe um valor númerico" }Isso me auxilia bastante quando estou desenvolvendo, com map | filter | reduce e me perco nas propriedades, e após corrigir podemos voltar para a maneira reduzida :)
Abraços e Bons Estudos!
Show, muito obrigado!
Valeu pela dica ><