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

169
Vistas
Usar useQuery de Apollo para devolver un valor, no renderizar

Disculpas porque soy bastante nuevo en React y no pude encontrar la respuesta al buscar, pero acepto que podría estar usando esto mal.

Tengo varias páginas que utilizan useQuery de Apollo y cuando la variable "cargar" es falsa, puede procesar los datos y renderizar, lo cual es bastante fácil.

Sin embargo, quiero crear un nuevo archivo llamado GetCustomerID.jsx y tener una función de flecha que, cuando se proporciona con una identificación de usuario, ejecutará una consulta gql y devolverá el valor de la identificación del cliente. No renderizar componentes, solo devolver el valor.

El problema es que una vez que se llama desde otra página, siempre devuelve "cargando"

 const myQuery = gql` query GetCustomerID($id: ID!) { user(id: $id) { data { id attributes { customer { data { id } } } } } } `; const GetCustomerID = () => { const [userId, setUserID] = useState(localStorage.getItem("userid")); const [custId, setCustId] = useState(); const { loading, error, data } = useQuery(myQuery, { variables: { id: userId } }); if(loading){ return "loading" } if (error) { console.log(error); return "error"; } setCustId(data.attributes.customer.id); console.log(custId); return custId; };

Llamar desde otro lugar:

 const [custId, setCustId] = useState(); let myVal = GetCustomerID(); setCustId(myVal)

Cualquier ayuda sería muy apreciada y si estoy malinterpretando useQuery para lo que estoy tratando de lograr, entonces disculpas

about 4 years ago · Juan Pablo Isaza
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