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

[ SUGESTÃO IMPLEMENTAÇÃO] Mini validação e retirada do código bruto do onChange dos inputs

Eu decidi ir a diante e fazer uma 'micro-melhoria' no código dos inputs para não repetir boa parte da estrutura do código em cada um dos componentes eu centralizei as ideias da aula em uma função apenas:

function handleChangeText(e, newState) {

    let temporaryName = e.target.value

    //validations without ifs, only by ternary operators: 
    try {
      newState === setName
        ?
        temporaryName = temporaryName.substr(0, 15)
        :
        newState === setNickname
          ?
          temporaryName = temporaryName.substr(0, 40)
          :
          newState === setCpf
            ?
            temporaryName = temporaryName.substr(0, 11) :
            newState = undefined

    } catch (err) {
      throw new Error(`Todas as validações falharam, ${err}`)
    }

    newState(temporaryName)
  }

#

e no componente ficou assim:

#

<TextField
        value={name}
        onChange={(e) => {
          handleChangeText(e, setName)
        }}
        fullWidth
        label="Nome"
        name="name"
        variant="outlined"
        margin="normal"
      />

e para pegar o valor do formulário optei por treinar com a funcionalidade de FormData:

****

  function handleFormDataGrip(e) {
    e.preventDefault()
    const formData = new FormData(e.target);
    const name = formData.get('name')
    const lastname = formData.get('lastname')
    const cpf = formData.get('cpf')

    const obj = {
      nome: name,
      lastname: lastname,
      cpf: cpf
    }

    console.log(obj)
  }

Mesmo sabendo que posso acessar ele direto do estado, assim eu consigo gerar um objeto JS a cada submit do botão, quem quiser fazer os testes ou postar suas dúvidas sobre o código! Estou aberto a sugestões :D

1 resposta
solução!

Fala, Guilherme! Beleza?

Muito boa sua implementação! O React adiciona muitas possibilidades para que o desenvolvedor seja criativo e escolha o que melhor lhe serve. Você fez exatamente isso! Gostei muito do uso do FormData, e da forma com a qual você fez a verificação.

Em projetos grandes que usam React, precisamos implementar esses conceitos de reutilização de código mesmo, principalmente quando falamos de formulários, um dos pontos mais importantes do desenvolvimento front-end.

Mais para frente na formação, você vai encontrar outras ferramentas do React, como Hooks personalizados, e a Context API. Isso vai poder te ajudar a melhorar ainda mais essa implementação e entender como grandes bibliotecas de validação de formulário trabalham por de baixo dos panos.

Bons estudos!