Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

4
respostas

não consigo fazer submissão do botão com formulário

Estou trilhando no curso React 19: JSX, componentes, form action e useState Não cria evento no dev toools não aparece nada

import "./formulario-de-evento.estilos.css";
import { CampoDeEntrada } from "../CampoDeEntrada";
import { CampoDeFormulario } from "../CampoDeFormulario";
import { Label } from "../Label";
import { TituloFormulario } from "../TituloFormulario";
import { ListaSuspensa } from "../ListaSuspensa";
import { Botao } from "../Botao";

export function FormularioDeEvento({ temas }) {

  function aoFormSubmetido (formData) { 
    console.log('opa, tá na hora de criar um novo evento', formData)
    const evento = {
       capa: formData.get('capa'),
      tema: temas.find(function(item) {
        return item.id == formData.get('tema')
      }),
      data: new Date(formData.get('dataEvento')),
      titulo: formData.get('nomeEvento')
    }
    console.log('esse é o evento', evento)
  }

  return (
    <form className="form-evento" action={aoFormSubmetido}>
      <TituloFormulario>Preecha para criar um evnento:</TituloFormulario>
      <div className="campos">
        <CampoDeFormulario>
          <Label htmlFor="nomeEvento">Qual o nome do evnento?</Label>
          <CampoDeEntrada
            type="text"
            id="nomeEvento"
            placeholder="Summer dev hits"
            name="nomeEvento"
          />
        </CampoDeFormulario>
        <CampoDeFormulario>
          <Label htmlFor="capa">Qual o nome do evnento?</Label>
          <CampoDeEntrada
            type="text"
            id="capa"
            placeholder="'https://..."
            name="capa"
          />
        </CampoDeFormulario>
        <CampoDeFormulario>
          <Label htmlFor="dataEvento">Data do evento</Label>
          <CampoDeEntrada type="date" id="dataEvento" name="dataEvento" />
        </CampoDeFormulario>
        <CampoDeFormulario>
          <Label htmlFor="tema">Tema do evento</Label>
          <ListaSuspensa name="tema" id="tema" itens={temas} />
        </CampoDeFormulario>
      </div>
      <div className="acoes">
        <Botao>Criar evento</Botao>
      </div>
    </form>
  );
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

4 respostas

Olá, Robson, como vai?

Você pode compartilhar o repositório com o projeto completo? Assim consigo reproduzir o projeto e o comportamento aqui, analisar a implementação e verificar o que está impedindo a submissão do formulário. Se possível, informe também exatamente em qual aula e em qual momento do vídeo você encontrou essa dificuldade. Dessa forma, consigo comparar o seu código com o que foi desenvolvido naquele ponto do curso e ter uma referência mais precisa do que você está tentando implementar.

Estamos à disposição para ajudar.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

https://github.com/robsonsoaresid/tecboard
Aula 04: Submetendo o formulário; 4. Action do formulário no momento em que ele clica para criar evento. Quando eu clico no botão criar evento com os campos preechido do formulário não atualiza a página e nem o dev tools responde.

Oi, Robson.

Testei aqui o trecho que você colou comparando com o repositório oficial do curso, e o action funciona normalmente lá, então a lógica da função aoFormSubmetido e a leitura do FormData parecem corretas. Isso me leva a suspeitar que o problema esteja em outro ponto do projeto, provavelmente em algum dos componentes filhos usados dentro do formulário

Por isso, pra eu conseguir ver onde está a diferença, preciso do repositório atualizado. O que você mandou no github está com a última atualização de 2 dias atrás, antes do action ser conectado e antes da lista suspensa ter a lista de temas aplicada, então ele não corresponde ao ponto em que você está agora.

Você consegue subir a versão mais recente do projeto, já com esse commit incluído, pra gente conseguir comparar direitinho?

Qualquer coisa o fórum está à disposição.

Olá Mike eu creio que naquela parte do curso nao tava igual por conta da incopatilidade das versões do React, porque quando chegou na parte que usa o Hook eu consegui criar o evento.