Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

168
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!