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

252
Vistas
La API de consumo no funciona, ¿qué estoy haciendo mal aquí?

No estoy seguro si este es el lugar para cambiar las cosas, pero he cambiado algunas cosas debido a sus comentarios, todavía no puedo ver las imágenes, pero aquí hay una actualización del código:

Aplicación JS:

 import axios from 'axios'; export default { name: 'home', components: { ImageCard }, data() { return { images: [] } }, methods: { fetchImages = () => { axios .get("https://foodish-api.herokuapp.com/api/images/pizza") .then(res => { console.log(res); this.setState({ images: res.data.message }); }) .catch(err => console.log(err)); this.images = fetchImages() }); }

Código Index.cshtml aquí:

 <div id="app"> <div class="home"> <li v-for="image in images" :key="image.id"> <img :src="image.url" :alt="image.alt" /> </li> </div>

Obviamente, algo está mal aquí, pero parece que no puedo hacerlo bien ya que no puedo ver las imágenes, ¿qué sigue estando mal aquí? Además, cuando se refiera a algo que debo hacer diferente, solo indíqueme la dirección correcta del código: D

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

0

Hiciste mal lo siguiente:

  1. cree un método fetchImages y nunca lo llame.
  2. this.setState esta función no definida.
  3. this.images = fetchImages() lo llevará a un bucle infinito porque esta es una función de recursión
  4. en su html use :src="image.url" para mostrar la imagen, pero obtiene los datos como una cadena, no como un objeto y debe usar :src="image"

puedes comprobar la solución en este proyecto de codesandbox

https://codesandbox.io/s/busy-ellis-rcifm?file=/src/App.vue

 <template> <div id="app"> <li v-for="image in images" :key="image.id"> <img :src="image" :alt="image.alt" /> </li> </div> </template> <script> import axios from "axios"; export default { name: "App", data() { return { images: [], }; }, mounted() { axios .get("https://foodish-api.herokuapp.com/api/images/pizza") .then((res) => { this.images = res.data; }) .catch((err) => console.log(err)); }, }; </script>
about 4 years ago · Juan Pablo Isaza Denunciar

0

En primer lugar, cuando llame a fetchImages() , debe configurar this.images=fetchImages() , para que se configuren los datos de las images . Y si desea mostrar imágenes, puede hacer lo siguiente:

 <li v-for="image in images" :key="image.id"> <img :src="image.url" :alt="image.alt"/> </li>
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