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

242
Views
La imagen creada con use-react-screenshot se representa incorrectamente

Estoy usando use-react-screenshot para tomar una captura de pantalla de un elemento dom específico, pero la imagen se vuelve extraña, parece que representa parcialmente el elemento dom

Esta es la imagen generada después de ejecutar la función de captura de pantalla

Estoy usando el código de muestra en create-react-app

 import logo from "./logo.svg"; import "./App.css"; import { createRef } from "react"; import { useScreenshot, createFileName } from "use-react-screenshot"; function App() { const ref = createRef(null); const [image, takeScreenShot] = useScreenshot({ type: "image/jpeg", quality: 1.0, }); const download = (image, { name = "img", extension = "jpg" } = {}) => { const a = document.createElement("a"); a.href = image; a.download = createFileName(extension, name); a.click(); }; const downloadScreenshot = () => takeScreenShot(ref.current).then(download); return ( <div className="App"> <header className="App-header"> <button onClick={downloadScreenshot}> Download screenshot </button> <img src={logo} className="App-logo" alt="logo" ref={ref} /> </header> </div> ); } export default App;

Un arenero para jugar con él.

No estoy seguro de si está relacionado con html2canvas como una dependencia de pares. Y donde sea que ponga la ref , ocurre el mismo error.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

En github hubo muchos problemas relacionados con SVG que no se descargaban correctamente con html2canvas. Sospecho que estos son los problemas. Las soluciones/ soluciones provisionales proporcionadas por los usuarios incluyen modificaciones de código en el código interno. Esto es nuevamente difícil de mantener más adelante. También Firefox mostró una imagen en blanco cuando se descargó.

Mi mejor solución sería usar una biblioteca alternativa como html-to-image . En unos minutos todo parece estar funcionando con esto. (Incluso Firefox)

 import * as htmlToImage from "html-to-image"; ... const takeScreenShot = async (node) => { const dataURI = await htmlToImage.toJpeg(node); return dataURI; }; const download = (image, { name = "img", extension = "jpg" } = {}) => { const a = document.createElement("a"); a.href = image; a.download = createFileName(extension, name); a.click(); }; const downloadScreenshot = () => takeScreenShot(ref.current).then(download); ...

codigosandbox

Ahora, esta podría no ser la mejor solución, pero es la mejor solución de trabajo alternativa en este momento.

over 4 years ago · Santiago Trujillo Report

0

Después de algunas investigaciones, parece que hay una incompatibilidad con React V17, ya que no instala html2canvas como una dependencia de pares como solía hacerlo en React V16. Entonces, es un error .

La solución es agregar html2canvas como una dependencia de pares usando el indicador heredado en la terminal

 npm add html2canvas --legacy-peer-deps

Después de hacer eso, puedo tomar capturas de pantalla.

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!