Я рекомендую использовать Interweave, созданный milesj . Это феноменальная библиотека, которая использует несколько оригинальных методов для анализа и безопасной вставки HTML в DOM.
Interweave - это библиотека реагирования, позволяющая безопасно отображать HTML, фильтровать атрибуты, автоматически переносить текст с помощью сопоставлений, отображать символы эмодзи и многое другое.
- Interweave - это мощная библиотека React, которая может:
- Безопасно отображать HTML без опасного использования SetInnerHTML.
- Безопасно лишить HTML-теги.
- Автоматическая XSS и защита от впрыска.
- Очистите атрибуты HTML с помощью фильтров.
- Интерполируйте компоненты, используя сопоставители.
- Автолинк URL, IP-адреса, электронные письма и хэштеги.
- Рендеринг эмодзи и смайликов.
- И многое другое!
Пример использования:
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