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

166
Visualizações
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 Respostas
Responde à pergunta

0

Prueba con:

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

about 4 years ago · Juan Pablo Isaza Relatório

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 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