Mantenha um schema só para o formulário inteiro e valide cada etapa contra a fatia dela, para que as mesmas regras rodem no cliente e de novo no servidor. Guarde as respostas em um único objeto acima das etapas, controle a etapa atual pela URL para que voltar e avançar funcionem, e persista o progresso a cada troca de etapa. Valide no blur e no submit, e nunca confie na validação do cliente como único portão.
Por que os entrevistadores perguntam isso
Formulários de múltiplas etapas trazem à tona várias decisões de design de uma vez: onde fica o estado, roteamento, estratégia de validação, persistência e acessibilidade. O entrevistador quer ver que você pensa no usuário apertando o botão voltar do navegador, dando refresh no meio, e batendo num erro de validação do servidor na última etapa. Respostas fracas mantêm tudo num useState gigante e esquecem a URL por completo.
Como estruturar sua resposta
- Defina um schema único e derive dele a validação por etapa.
- Diga onde as respostas moram e por quê.
- Coloque a etapa na URL e explique o que isso resolve.
- Cubra persistência, validação no servidor e tratamento de erro no submit.
Exemplo de resposta
Eu começo com um schema único para a coisa toda, e aí cada etapa valida a fatia dela. Assim existe uma definição só do que é válido, e eu posso rodar exatamente o mesmo schema no servidor, porque validação no cliente é conveniência e não garantia. As respostas coletadas vivem num objeto só num pai, ou numa store pequena se as etapas estiverem distantes na árvore, e cada etapa recebe a fatia dela e um jeito de escrever de volta. A etapa atual vai na URL, o que parece detalhe mas resolve várias coisas de uma vez: voltar e avançar funcionam, alguém pode dar refresh sem perder o lugar, e o suporte pode perguntar em qual URL a pessoa está. Eu persisto o rascunho a cada transição de etapa, normalmente no servidor se o usuário estiver logado e no storage se não estiver. A validação roda no blur e de novo no avançar, e no submit final eu trato os erros do servidor mapeando os caminhos dos campos de volta para a etapa certa e levando o usuário até lá com o foco no input problemático.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Como você lida com um erro de validação que só o servidor consegue detectar?
- O que você faz com um usuário que abandona na etapa três e volta uma semana depois?
- Como você gerencia foco e anúncios entre etapas para leitores de tela?
Mais perguntas para Desenvolvedor React
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas