Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

340
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!