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

267
Views
¿Cómo renderizar SVG provenientes de la respuesta de la API usando next/image o <img> en Next.js?

Tengo un montón de svgs provenientes de una respuesta de API, que obtengo dentro useEffect . La respuesta se ve así

 {svg1: 'https://remoteserver.com/assests/svg1.svg', ...and so on}

(Estos svgs no son estáticos y provienen de la carpeta /public . Por lo tanto, no los importo en la parte superior). Quiero representarlos en nextjs usando next/image o la etiqueta <img> normal, pasando la url a src . Sé que next.js por defecto no es compatible con svgs.

 <Image alt='SVG from api' src={response.svg1} width={'45px'} height={'45px'} objectFit='contain' />

De acuerdo con los documentos , esto es posible con dangerouslyAllowSVG , pero aquí existe un riesgo de seguridad, por lo que no quiero seguir esta ruta. Sé que hay paquetes como SVGR y babel-inline-svg para resolver el problema, pero son para usar svgs como componentes de reacción. También probé next-images y withImages dentro de next.config.js .

 const withImages = require('next-images') module.exports = withImages({ reactStrictMode: true, env: { BASE_URL: process.env.BASE_URL }, images: { domains: ['remoteserver.com', 'remoteserver2.com'] }, webpack(config, options) { return config } })

Pero la compilación falla cuando intento next build .

 ./static/images/Logo.png TypeError: unsupported file type: undefined (file: undefined)

¿Qué me estoy perdiendo/haciendo mal aquí? ¿Hay alguna solución alternativa?

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

0

Aparentemente, opté por DangerlyAllowSVG y agregué los encabezados CSP. Aún así, svg no se estaba cargando con <Image /> from next/image . Sin embargo, funcionó cuando usé la etiqueta <img> normal. Aunque no estoy seguro de si esta es la mejor solución :)

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!