Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

223
Vistas
buscar () datos de URL con Javascript React y mostrar como cadena

Tengo una api que se llama así:

 http://localhost:5000/record/gopa

y devuelve los datos en este formato JSON

 {"pid":{ "ck":"F1965121910:265.522.5788.37", "name":"gopa", "cID":"MVOE9BW5ZZOC"} }

Quiero llamar a esto desde una función React Details2() que se llama desde un enrutador como este:

 import Details2 from "./components/Details2"; const App = () => { return ( <div> <Navbar /> <Routes> <Route exact path="/" element={<RecordList />} /> <Route path="/singlerecord/:id" element={<RecordList1 />} /> <Route path="/details2/:id" element={<Details2 />} /> </Routes> </div> ); };

el parámetro :id debe pasarse a la función Detalles2()
Esta función se encuentra en el archivo /components/Details2.js y se llama correctamente.
He reducido el archivo Details2.js a lo esencial y contiene

 import React from "react"; import { useParams, useNavigate } from "react-router"; export default function Details2() { const params = useParams(); let z = fetch(`http://localhost:5000/record/${params.id.toString()}`).then((response) => { return response.json(); }) let cname = z.pid.name return ( <div> <h3>Details2</h3> {params.id.toString()} </div> ); }

Estoy tratando de acceder al contenido de los datos que ha devuelto la llamada para su posterior procesamiento, pero no puedo acceder a ellos en ninguna variable, como cname , que se muestra aquí. No hay salida disponible, ni siquiera el encabezado.
Si elimino la asignación, el programa funciona correctamente, muestra el HTML que se devuelve, incluido el valor de params.id.toString() que se pasa correctamente desde el enrutador.
Mi simple pregunta es poder acceder a los valores individuales de las diversas claves que se devuelven desde la API. Por favor ayúdame con el código que se requiere.
He visto este artículo donde hacen algo similar. Sin embargo, en este caso están usando una clase pero no pude encontrar una manera de pasar parámetros a una clase, como estoy haciendo en el caso de la función Detalles2().

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Esto es lo que finalmente funcionó bien :-)

 import React, { useEffect, useState } from "react"; import { useParams } from "react-router"; export default function Detail52() { const params = useParams(); const [dbdata, setData] = useState('empty52'); useEffect(() => { async function getData() { const response = await fetch(`http://localhost:5000/record/${params.id.toString()}`); //const response = await fetch(`http://localhost:5000/record/gopa`); if (!response.ok) { const message = `An error occurred: ${response.statusText}`; window.alert(message); return; } const dbdata = await response.json(); //dbdata = response.json(); //window.alert(JSON.stringify(dbdata)); setData(dbdata); //setData('fake data') } getData(); return; },[dbdata]); return ( <div> <h3>Detail Information</h3> <p>{JSON.stringify(dbdata)}</p> </div> ); }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda