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

163
Views
cómo llamar condicionalmente a una API según el valor recibido

necesito llamar a una API dependiendo del valor que estoy recibiendo en el estado,

 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> const [selectedValue, setSelectedValue] = useState([]) const firstAPI = async (val) => { return await axios .get(`http://localhost:3000/api/v1/rendition?name=${val}&&excel=true`) .then(res => console.log('excel', res)) } const secondAPI = async (val) => { const limit = pageSize * (page - 1); return await axios .get(`http://localhost:3000/api/v1/rendition?id=${val}&&skip=${limit}&&take=${pageSize}&&excel=true`) .then((res) => { console.log('excelID', res); }) } const handleExcelClick = (param) => { if(param.filter(item => typeof item === 'string')){ firstAPI(param) } else { secondAPI(param) } } <Button onClick={() => handleExcelClick(selectedValue)} > Excel </Button>

estoy recibiendo un valor de 2 entradas diferentes, que se almacenan en el estado de valor seleccionado, que puede ser una cadena o un número, por lo que necesito llamar a una API según el valor, si es una cadena, llamar a la primera API, si es un número, llame a la segunda API. Pero cualquiera que sea la condición que coloque, ignora la declaración if y solo llama a la primera API, lo que también desencadena un error 500 porque una de las API solo toma números como parámetros, no sé otra forma de abordar esto, cualquier ayuda será muy apreciado

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Prueba con:

 ... if(param.filter(item => isNaN(item) )){ firstAPI(param) } else { secondAPI(param) } ...

about 4 years ago · Juan Pablo Isaza Report

0

Así que lo resolví hace muchos días, pero olvidé publicar mi solución, así que aquí va:

 const handleExcelClick = (param: any) => { if (typeof param === 'number') { return firstAPI(param); } else if (param.some((i: any) => typeof i === 'string')) { return secondAPI(param); }

};

básicamente olvidé agregar un retorno a cada declaración, y tampoco tenía sentido filtrar valores basados solo en un método de filtro, así que usé el método de matriz "algunos" para recibir los valores que devuelven verdadero si se cumple la condición, que está comprobando si el tipo de datos coincide con la declaración

espero que esto ayude a cualquiera que intente hacer lo mismo

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