#Alguien que me pueda ayudar para iterar

1 messages · Page 1 of 1 (latest)

rich spire
#

MiniProject.astro:

#

MoreProjects.astro:

zealous tapir
#

Podria ser un error al importar el archivo

#

revisa bien la ruta

#

Algo que note en el codigo es que no estas usando una ruta dinamica, estas importando algo en tu pc luego cuando subas el proyecto tendras problemas con eso que estas importando

zealous tapir
rich spire
#

pero si le hago un console.log si me lo muestra bien

rich spire
#

probé usando un array dentro y no un json y pasa exactamente lo mismo

rich spire
#

.

sharp current
#

Ya lo veo

#

@rich spire No entiendo

#

xd

#

Por eso nadie quiere entrar a pedirte más explicaciones

#

Cuentame

rich spire
#

básicamente no me deja iterar el array para darle al componente las props

#

osea

#

{
projects.map(({ name, image, url, github }) => (
<MiniProject
name={name}
image={image}
url={url}
github={github}
/>
))
}

#

esto no funciona

sharp current
#

Vale, ¿corregiste ese import que haces a partir del disco C?

rich spire
#

si

#

eso no se usaba

sharp current
#

Mandame screenshots, no lo hagas con esa herramienta porque no me muestra sintaxis de astro

rich spire
#

si yo hago esto:

#

for (var i = 0; i < projects.length; i++) {
console.log(projects[i])
}

#

si funciona

#

me sale los 3 elementos del array en consola

sharp current
#

Claro, pero después le dices al profe: "en mi pc sí funcionaba"

#

xd

rich spire
#

los errores de módulo son errores de WSL

#

todo eso funciona bien

#

todo está importado bien

sharp current
#

los datos los tienes en projects?

#

muestra la consola

rich spire
#

esto es lo que pasa

#

no se itera realmente

sharp current
#

Pero el primero sí muestra?

rich spire
#

si

#

bueno en realidad es todavía más raro en eso

#

no se muestra el primero

#

se muestra uno

#

pero no tiene porque ser el primero

#

si querés muestro como se ve en el inspeccionar elemento

sharp current
#

Intenta iterar solo el nombre:

{ 
  projects.map(({ name }) => (
    <p>{name}</p>
  ))
}
rich spire
#

funciona si

sharp current
#

foticos

#

para ver

rich spire
sharp current
#

Ahora:

{ 
  projects.map(({ image}) => (
    <img src={image} />
  ))
}
rich spire
#

funciona

sharp current
#

Entonces

#

el problema está en el component

#

Muestrame el componente

rich spire
#

yo añadí la parte de props porque lo usaba tanto así midu (de donde estoy aprendiendo astro) como en otros lados

sharp current
#

Intenta borrando todo lo que tenga que ver con iconos

#

a parte el projectData no tiene nada que hacer ahí

rich spire
#

ya

#

borré todo eso

sharp current
#

y ¿Qué paso? 🗣️ xd

rich spire
#

pero sigue quedando igual si vuelvo para que me muestre esto

#

si vuelvo a ponerle esto al map todo queda como antes

#

los iconos no cambiaron nada

sharp current
#

Por eso, vamos borrando cositas

#

hasta que encontremos la piedra en el zapato

rich spire
#

le paso links, puro texto

sharp current
#

Yo necesito ver como va quedando el código

#

y como se va viendo

rich spire
sharp current
#

Vamos a probar borrar el html y solo imprimirémos lo mismo de antes:

<p>{name}</p>
#

A ver si el error se encuentra ahí

#

Porque no veo nada raro

sharp current
#

Me refiero al componente, dejale el frontmatter intacto

#

solo toca el html

rich spire
#

si funciona ahí

#

dá los 3 name

sharp current
#

Ok, entonces vuelve como estaba al prinicipio

#

pero ahora vamos borrando de a bloques

#

Uy

#

Quizá el problema sea los img

#

no estás cerrando

#

<img /> 👈

rich spire
#

no parece

sharp current
#

¿Lo probaste?

#

porque es importante cerrarlos

rich spire
#

sip

sharp current
#

Muestra

rich spire
#

no cambia nada

sharp current
#

Copia todo el componente y pegalo aqui

#

para verlo entero

rich spire
rich spire
#

export interface Props {
name: string;
url: string;
image: string;
github: string;
}

const { name, image, url, github } = Astro.props;


<a class="relative rounded-lg bg-[#454545] w-48 h-64 overflow-hidden" href="#">
<div class="absolute [&>A]:hover:translate-y-0 [&>A]:hover:opacity-100">
<a class="translate-y-6 opacity-0 z-10 absolute top-4 right-4 size-4 transition-all duration-500" href={github}>
<img class="absolute size-4 invert" src="{githubIcon?.src}" alt={name} />
</a>
<a class="translate-y-6 opacity-0 z-10 absolute top-10 right-4 size-4 transition-all duration-500" href={url}>
<img class="absolute size-4 invert" src="{arrowUp?.src}" alt="" />
</a>
<img class="z-1 w-48 h-64 object-cover rounded-lg transition-all duration-500 scale-95 hover:scale-100 grayscale hover:grayscale-0"
src={image} alt="#" />
</div>
</a>

sharp current
#

Te recomiendo la extensión, mira que bello:

rich spire
#

cual es esa?

sharp current
rich spire
#

se ve bien

sharp current
#

Te voy a enviar el código y lo vas a reemplazar con todo el html

rich spire
#

ok

sharp current
#
---
export interface Props {
  name: string;
  url: string;
  image: string;
  github: string;
}

const { name, image, url, github } = Astro.props;

---

<a class="relative rounded-lg bg-[#454545] w-48 h-64 overflow-hidden" href="#">
    <div class="absolute [&>A]:hover:translate-y-0 [&>A]:hover:opacity-100">
      {name}
    </div>
</a>
#

Vamos poco a poco

rich spire
sharp current
#

perfecto

#
<a class="relative rounded-lg bg-[#454545] w-48 h-64 overflow-hidden" href="#">
    <div class="absolute [&>A]:hover:translate-y-0 [&>A]:hover:opacity-100">
        <a class="translate-y-6 opacity-0 z-10 absolute top-4 right-4 size-4 transition-all duration-500" href={github}>
            <img class="absolute size-4 invert" src="{githubIcon?.src}" alt={name} />
        </a>
    </div>
</a>
#

solo el html

#

el frontmatter dejalo intacto

rich spire
sharp current
#
---
export interface Props {
  name: string;
  url: string;
  image: string;
  github: string;
}

const { name, image, url, github } = Astro.props;

---

<a class="relative rounded-lg bg-[#454545] w-48 h-64 overflow-hidden" href="#">
    <div class="absolute [&>A]:hover:translate-y-0 [&>A]:hover:opacity-100">
        <a class="translate-y-6 opacity-0 z-10 absolute top-4 right-4 size-4 transition-all duration-500" href={github}>
            {name}
            <img class="absolute size-4 invert" src="{githubIcon?.src}" alt={name} />
        </a>
    </div>
</a>
rich spire
#

eso no se va a ver

#

porque tengo un opacity-0 en el anchor creo

sharp current
#

¿Consideras que es un problema de estilos?

rich spire
#

puede que sea

#

pero no es raro que funcione uno y el resto no?

sharp current
#
---
export interface Props {
  name: string;
  url: string;
  image: string;
  github: string;
}

const { name, image, url, github } = Astro.props;

---

<a class="relative rounded-lg bg-[#454545] w-48 h-64 overflow-hidden" href="#">
    <div class="absolute [&>A]:hover:translate-y-0 [&>A]:hover:opacity-100">
        
        <img class="z-1 w-48 h-64 object-cover rounded-lg transition-all duration-500 scale-95 hover:scale-100 grayscale hover:grayscale-0" src={image} alt="#" />
    </div>
</a>
rich spire
#

ahí si funciona

#

pues si era un error de estilos

#

era en lo único que pensaba que no erraría

sharp current
#

con los estilos tocaría con las devtools

rich spire
#

muchas gracias y perdoná las molestias

rich spire
#

pero se rompía

sharp current
#

Si quieres le haces deploy y lo checo

rich spire
#

el que funcionaba era un div como lo cree en el código, pero en las devtools el resto eran anchor

#

entonces no podía modificarlos

sharp current
rich spire
#

no gracias, yo ya lo modifico y le hago lo que buscaba

sharp current
#

Dale 👌

rich spire
#

ty

#

y perdón de nuevo