Recomiendo usar Interweave creado por milesj . Es una biblioteca fenomenal que hace uso de un número de técnicas ingeniosas para analizar e insertar HTML de forma segura en el DOM.
Interweave es una biblioteca de reacción para renderizar HTML de forma segura, filtrar atributos, ajustar automáticamente el texto con matchers, renderizar caracteres emoji y mucho más.
- Interweave es una biblioteca robusta de React que puede:
- Renderice HTML de forma segura sin utilizar peligrosamente SetInnerHTML.
- Tira de forma segura las etiquetas HTML.
- Protección automática XSS e inyección.
- Limpie los atributos HTML utilizando filtros.
- Interpolar componentes usando matchers.
- Enlace automático de URL, IP, correos electrónicos y hashtags.
- Render Emoji y personajes de emoticonos.
- ¡Y mucho más!
Ejemplo de uso:
import React from 'react';
import { Markup } from 'interweave';
const articleContent = "<p><b>Lorem ipsum dolor laboriosam.</b> </p><p>Facere debitis impedit doloremque eveniet eligendi reiciendis <u>ratione obcaecati repellendus</u> culpa? Blanditiis enim cum tenetur non rem, atque, earum quis, reprehenderit accusantium iure quas beatae.</p><p>Lorem ipsum dolor sit amet <a href='#testLink'>this is a link, click me</a> Sunt ducimus corrupti? Eveniet velit numquam deleniti, delectus <ol><li>reiciendis ratione obcaecati</li><li>repellendus culpa? Blanditiis enim</li><li>cum tenetur non rem, atque, earum quis,</li></ol>reprehenderit accusantium iure quas beatae.</p>"
<Markup content={articleContent} /> // this will take the articleContent string and convert it to HTML markup. See: https://milesj.gitbook.io/interweave
//to install package using npm, execute the command
npm install interweave