by Sai gowtham

Rendering the HTML string in React

In this tutorial, we are going to learn about how to render the html string as real dom elements in React app.

If we try to use JSX curly brace syntax { } to render an html string, react will treated it as a plain text (to prevent from the cross-site scripting attacks).

App.js
import React from "react";

export default function App() {
  const htmlString = "<h1>Hello World</h1>";
  return <div>{htmlString}</div>;
}

Rendering the HTML

To render the html string in react, we can use the dangerouslySetInnerHTML attribute which is a react version of dom innerHTML property.

Example:

App.js
import React from "react";

export default function App() {
  const htmlString = "<h1>Hello World</h1>";
  return <div dangerouslySetInnerHTML={{ __html: htmlString }}>         </div>;
}

The term dangerously is used here to notify you that it will be vulnerable to cross-site scripting attacks (XSS).

Similarly, you can also use the html-react-parser library to render the html string.

App.js
import React from "react";
import parse from "html-react-parser";
export default function App() {
  const htmlString = "<h1>Hello World</h1>";

  return <div>{parse(htmlString)}</div>;}

Top Udemy Courses

JavaScript - The Complete Guide 2020 (Beginner + Advanced)
JavaScript - The Complete Guide 2020 (Beginner + Advanced)
45,614 students enrolled
52 hours of video content
View Course
React - The Complete Guide (incl Hooks, React Router, Redux)
React - The Complete Guide (incl Hooks, React Router, Redux)
284,472 students enrolled
40 hours of video content
View Course
Vue JS 2 - The Complete Guide (incl. Vue Router & Vuex)
Vue JS 2 - The Complete Guide (incl. Vue Router & Vuex)
130,921 students enrolled
21 hours of video content
View Course