1
resposta

if(etapaAtual === formularios.length)

function FormularioCadastro({ aoEnviar, validarCPF }) {
  const [etapaAtual, setEtapaAtual] = useState(0);
  const [dadosColetados, setDados] = useState({});

  useEffect(()=>{
    if(etapaAtual === formularios.length){
      aoEnviar(dadosColetados);
    }
  })

  const formularios = [
    <DadosUsuario aoEnviar={coletarDados} />,
    <DadosPessoais aoEnviar={coletarDados} validarCPF={validarCPF} />,
    <DadosEntrega aoEnviar={coletarDados} />,
  ];

  function coletarDados(dados){
    setDados({...dadosColetados, ...dados});
    proximo();
  }
  function proximo() {
    setEtapaAtual(etapaAtual + 1);
  }
    return <>{formularios[etapaAtual]}</>;
}

export default FormularioCadastro;

durante a aula, o professor esta estruturando esse codigo, e fala naturalmente que no useEffect, a gente manda os dados coletados quando estiver com o estadoAtual igual ao tamanho do formularios. mas eu não consigo entender qual foi o pensamento por trás disso. qual o processo logico por traz?

1 resposta

deixa eu tentar te ajudar, o conceito de useEffect acontece após a atualização de algum estado... ou seja, ele é uma consequência, a partir, do momento em que a "etapaAtual" muda de valor, ele chama o useEffect e quando ela atinge o parametro do teu "IF", ela executava a ação. espero ter ajudado!!

outro exemplo que poderia dar é: você tem um contador e toda vez que você clicar em um botão para incrementar ou decrementar esse contador, a variavel do contador vai ser alterar e vai charmar o useEffect que vai executar uma ação...