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

172
Views
¿Cómo me dirijo a un nodo específico en el componente React y tengo un comportamiento independiente cuando se reutiliza el componente?

Estoy tratando de apuntar a un nodo específico en mi componente reutilizable de reacción y realizar una operación en él. Pero quiero poder hacer lo mismo varias veces de forma independiente porque devolveré este componente reutilizable varias veces en la misma página en mi App.js. ¿Cómo me dirijo a ese nodo div de forma única?

Aquí está mi situación:

Creé un componente de clase de reacción (no estoy usando el componente de función para este proyecto). Este componente contiene dos divs y un botón. El primer div es un cuadro rojo. Debajo está el segundo div que está vacío con la clase "resultado". También hay un botón. Cuando hago clic en este botón, el paquete Html2Canvas convertirá el primer div en una imagen y lo agregará al segundo div.

Ahora, a partir de la documentación de Html2Canvas, solo especificaron cómo agregar el lienzo generado al cuerpo del DOM:

 html2canvas(document.querySelector("#capture")).then(canvas => { document.body.appendChild(canvas) });

Como necesitaba agregar a ese segundo div vacío, lo hice:

 html2canvas(document.querySelector("#capture")).then(canvas => { document.queryselector('.result').appendChild(canvas) });

Esto habría estado bien si solo estoy usando este componente una vez en una página, pero en mi App.js, en realidad estoy devolviendo este mi componente varias veces, así que lo que sucede ahora es que cada vez que hago clic en ese botón, apunta solo la primera instancia del vacío, mientras que lo que necesito es que cada aparición de mi componente se comporte como la primera de forma independiente.

Sí, he intentado usar CreateRef() para apuntar a la aparición actual de la inmersión vacía, pero no funciona. Ve la referencia como indefinida cuando la llamo dentro de la función Html2Caanvas. Pero fuera de ella, se define. Ok, intenté crear la referencia en el interior, todavía dio un error de indefinido.

Entiendo que todo esto que he escrito puede ser algo vago, así que aquí hay un ejemplo de CodeSandBox de lo que quiero.

Cuando lo abre y hace clic en el primer botón "Finalizar", verá que el cuadro rojo se convierte en una imagen y la imagen se agrega debajo del cuadro rojo, es decir, se agrega al div con la clase "resultado". ". Pero cuando hace clic en el segundo botón "Finalizar", en lugar de que la imagen generada del cuadro azul quede debajo del div del cuadro azul, va debajo o al lado de la imagen anterior. El comportamiento esperado es que aparezca debajo del cuadro azul. Y si replico ese componente "ReUsable" tantas veces como quiera en el App.js, se espera el mismo comportamiento. Independencia.

Sé que esto es mucho. Espero y agradezco sus soluciones.

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