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

256
Vistas
Div aparece y desaparece al hacer clic en React JS

Quiero mostrar el contenido de las tarjetas (marcadas en rojo y con el nombre product.description en el código) al hacer clic, pero no sé cómo hacerlo.

El contenido de la tarjeta se obtiene del servidor JSON.

Aquí hay un código

El primer js se usa para obtener los datos del servidor y mostrarlos en la página y el segundo es el método para mostrar los datos en la página. En general, quiero que la etiqueta p aparezca y desaparezca cuando el usuario haga clic en el div principal denominado Product-Preview

 import { useEffect, useState } from "react"; import ProductList from "./ProductList"; const Products = () => { const [products, setProducts] = useState (null); useEffect (() => { fetch('http://localhost:8000/products') .then(res => { return res.json(); }) .then(data => { setProducts(data); }) }, []); return ( <div className="ProductList"> {products && <ProductList products={products}/>} </div> ); } export default Products;
 const ProductList = (props) => { const products = props.products; return ( <div className="ProductList" > {products.map((product) => ( <div className="Product-Preview" key={product.id}> <div className="backdrop" style={{backgroundImage: `url(${product.image})`}}></div> <h2>{ product.title }</h2> <p>{ product.description }</p> <div>{ product.price }</div><br /> </div> ))} </div> ); } export default ProductList;
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Debe crear un componente y usar un estado en este componente para hacerlo.

El componente de ejemplo tiene un nombre es Card

 const Card= ({ product }) => { const [showDescription, setShowDescription] = useState(false); return ( <div className="Product-Preview" onClick={() => setShowDescription(!showDescription)} > <div className="backdrop" style={{ backgroundImage: `url(${product.image})` }}></div> <h2>{product.title}</h2> {showDescription && <p>{product.description}</p>} <div>{product.price}</div> <br /> </div> ); };

Y usa este componente dentro del mapa.

 { products.map((product) => <Card product={product} key={product.id} />); }
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