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

350
Vistas
Mostrar detalles del elemento después de hacer clic en Enlace en React Router

He usado el enrutador para el enrutamiento. Hay una lista de productos y cuando se hace clic en un producto, se debe mostrar una página de detalles de ese producto (producto.nombre, producto.precio). Intenté pasar el objeto del producto en la consulta, pero no funciona de esa manera.

Aquí está mi código

productGrid.js

 const product = _.map(products, (product) => <Col xs={12} md={4} key={product.id} className="products"> <div className="product"> <Link to={{pathname: `product/${product.name}`, query: { query: product }}}> <img src={product.image} className="img-responsive" /> </Link> <span className="pull-left product-name">{product.name}</span> <span className="pull-right price">${product.price}</span> </div> </Col> );

producto-view.js

 class ProductView extends React.Component { render() { console.log('product', this.props.location.query); return ( <div>Product View</div> ); } }

this.props.location.query consolas

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Le sugiero que pase la lista de productos como props a ProductView y luego recupere el producto con su id . De esta manera, no hay inconveniente cuando un usuario navega directamente al producto.

productGrid.js

 <Link to={{pathname: `product/${product.name}`, query: { id: product.id }}}>

producto-view.js

 class ProductView extends React.Component { render() { const { products, location } = this.props; if (!products.length || !location) { return (<div>Loading...</div>); } const product = products.find(p => p.id == location.query.id); return product ? ( <div> <h1>{product.name}</h1> <img src={product.image} /> <p>{product.price}</p> </div> ) : ( <div>Error: Product doesn't exist</div> ); } }
over 4 years ago · Santiago Trujillo Denunciar

0

El objeto de query de un descriptor de ubicación se convertirá en una cadena de consulta. Puede usar la propiedad de state de un descriptor de ubicación para pasar el estado entre vistas.

 <Link to={{ pathname: `product/${product.name}`, state: { product } }}>

Luego, en el componente de su producto, puede marcar this.props.location.state para obtener los datos asociados. La desventaja de esto es que un usuario que navegue directamente a la misma URL no tendrá disponible el state .

over 4 years ago · Santiago Trujillo 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