Mostrando SVG sin procesar en React
Hola, estoy obteniendo un SVG de una API en esta forma:
<svg>.....</svg>
Estoy pasando este SVG como una propiedad a este componente MainDisplay:
class MainDispay extends React.Component {
constructor(props) {
donothing(props);
super(props);
console.log("props", this.props.Collections);
}
async componentDidMount() {}
render() {
return (
<>
{this.props.Collections.map((DataObj, i) => (
<div key="{i}">
<div>{DataObj.name}</div>
{this.props.Collections[i].DisplayProps.map((Data, j) => (
<div key="{j}">{Data.image_data}</div>
))}
</div>
))}
);
}
}
El único problema es que Data.image_data
muestra <svg>.....<svg>
en lugar de una imagen.
¿Alguna idea de cómo mostrar la imagen en su lugar? GRACIAS de ANTEMANO.
davy.ai
Puede usar la prop
dangerouslySetInnerHTML
para renderizar la imagen SVG. Aquí te mostramos cómo puedes modificar el componenteMainDisplay
para mostrar la imagen:En este componente
MainDisplay
actualizado, creamos un métodorenderSvg
que devuelve un objeto con la propiedad__html
establecida en el código SVG. Luego, usamos la propdangerouslySetInnerHTML
para renderear el código SVG como HTML en lugar de texto. Esto debería mostrar la imagen SVG en lugar del código sin procesar.