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

[AJUDA] Botão de Voltar

Finalizei o curso e queria implementar no software um botão de voltar, e assim ir para a etapa anterior de cadastro, mas não consigo fazer com que ao voltar os inputs estejam com seus devidos valores já preenchidos, gostaria de saber como implementar esse botão de voltar?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta
solução!

Olá, Cleriston! Tudo certo?

Desculpa pela demora!

No componente FormularioCadastro você possui o estado dadosColetados. Você pode passar ele como props para os formulários, como fazemos com o aoEnviar, e usar o hook useEffect em cada formulário verificando se as propriedades que o componente precisa possuem valores, e se já possuem, você já atualiza os estados internos.

Por exemplo, no caso do DadosPessoais:

function DadosPessoais({ dadosColetados, aoEnviar }) {
  const [nome, setNome] = useState("");
  const [sobrenome, setSobrenome] = useState("");
  const [cpf, setCpf] = useState("");
  const [promocoes, setPromocoes] = useState(true);
  const [novidades, setNovidades] = useState(false);
  const validacoes = useContext(ValidacoesCadastro)
  const [erros, validarCampos, possoEnviar] = useErros(validacoes);

  useEffect(() => {
    if (dadosColetados.nome) {
      setNome(dadosColetados.nome);
    }
  }, []);

Ou você pode fazer isso nas próprias inicializações dos estados, poupando código:

function DadosPessoais({ dadosColetados, aoEnviar }) {
  const [nome, setNome] = useState(dadosColetados.nome || "");
  const [sobrenome, setSobrenome] = useState(dadosColetados.sobrenome || "");
  const [cpf, setCpf] = useState(dadosColetados.cpf || "");
  // ...

Espero ter ajudado!