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

241
Views
Reaccionar: salida extraña al pasar una identificación al back-end

Tengo este proyecto para una perfumería. Tengo este componente CARD de un perfume.

Básicamente, me gustaría que el usuario haga clic en la tarjeta y genere un nuevo componente con todos los detalles de la tarjeta. Entonces, para eso paso a través de la ruta un parámetro de identificación.

 { state.map(c => ( <Grid item xs={4} sm={2} > <PerfumeCard key={c.id} perfume={c} /> <button className="myButton2"> <NavLink style={{ textDecoration: "none" }} to={{ pathname: '/home/myperfume/' + c.id, }}> Click here for details </NavLink></button> </Grid> )) }

hasta ahora no tengo problemas. en mi componente CARD DETAILS , uso useParams() para obtener la identificación y poder guardar el estado del perfume ya que estoy usando una tienda Redux .

 const params = useParams() const id = params.id; const [state, setState] = useState<any>('');

y recuperando el object :

 setState(store.getState().perfumeState.perfumes[id]);

Ahora, cuando verifico la depuración de mi console , veo que cuando uso console.log muestra la ID correcta, sin embargo, cuando console.log el estado real guardado al pasar la ID , obtengo un objeto diferente con una ID diferente.

digamos que hago clic en la tarjeta con id 1 .

Consola.log(id) = 1 ;

console.log(estado) = MyPerfume.tsx:29 {id: 2, name: 'Green Irish Tweed', type: 'EDT', gender: 'UNISEX', season: 'SUMMER', …}

como puede ver, me devuelven el objeto de id 2 por alguna razón

y cuando presiono la tarjeta con ID 2 , me devuelven el objeto con ID 5 , por ejemplo.

¿Qué causa este Comportamiento? Parece que no pude poner mis manos sobre el problema, sin embargo, sé que me estoy perdiendo algo.

¿Hay alguna forma mejor de obtener el objeto sin este problema?

Todavía nuevo en esto.

¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

store.getState().perfumeState.perfumes[id] no significa que enviará el perfume con id=1 , enviará el perfume en la posición 1 de la matriz de perfumes , por eso es diferente en el servidor, intente usar una array.find

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find

about 4 years ago · Juan Pablo Isaza 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!