Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

176
Visualizações
¿Cómo renderizar datos agregados con entradas de formulario?

Estoy representando información de la API, pero también necesito representar nueva información agregada con el formulario web. Hice este formulario para agregar información simple como el objeto de la API. ¿Cómo puedo representar aquí los datos agregados desde este formulario?

 function FormPage({ setData }) { const [name, setName] = useState(''); const [description, setDescription] = useState(''); const [id, setId] = useState(0); const handleSubmit = (e) => { e.preventDefault(); const book= { name, description, id} fetch('link-from-api', { method: 'POST', headers: { "Content-Type": "application/json" }, body: JSON.stringify(book) }).then(() => { console.log('new book added'); }) } return ( <> <form noValidate autoComplete="off" onSubmit={handleSubmit}> <TextField required value={name} onChange={(e) => setName(e.target.value)} label="Name" /> <TextField required value={description} onChange={(e) => setDescription(e.target.value)} label="Description" /> <button type="submit" onClick={handleId}> set</button> </form> </> ); } export default FormPage;

Cuando agrego un nuevo libro, necesito verlo en este documento:

 function BooksPage() { const [books, setBooks] = useState([]); useEffect(() => { fetch('link here') .then(res => { return res.json(); }) .then((data) => { setBooks(data) }) }, []) return ( <Container> <Header /> {books && <ListBooks props={books} />} </Container> ) }

¿Alguien puede ayudarme? Gracias por adelantado.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Necesitas usar el concepto llamado lifting the state up aquí.

Defina sus books de variables de estado en el componente principal común de estos dos componentes FormPage y BooksPage

Pase este método al componente FormPage.

 const addBook = (book) => { setBooks(b => [...b, book]) }

Llame a este método en

 const handleSubmit = (e) => { e.preventDefault(); const book= { name, description, id} fetch('link-from-api', { method: 'POST', headers: { "Content-Type": "application/json" }, body: JSON.stringify(book) }).then(() => { console.log('new book added'); addBook(book) }) }

Y pase books y setBooks a la página BooksPage.

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede mover la búsqueda a una función separada y volver a llamar cuando finalice POST

 function BooksPage() { const [books, setBooks] = useState([]); function fetchBooks() { fetch('link here') .then(res => { return res.json(); }) .then((data) => { setBooks(data) }) } useEffect(() => { fetchBooks(); }, []) return ( <Container> <Header /> {books && <ListBooks props={books} />} <FormPage fetchBooks={fetchBooks} /> </Container> ) }

Y en tu forma:

 const handleSubmit = (e) => { e.preventDefault(); const book= { name, description, id} fetch('link-from-api', { method: 'POST', headers: { "Content-Type": "application/json" }, body: JSON.stringify(book) }).then(() => { console.log('new book added'); // fetch again fetchBooks(); }) }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda