# Fix 'dangerouslySetInnerHTML did not match' in React

> Learn how to fix the React dangerouslySetInnerHTML did not match warning, caused by nesting a p tag inside another p tag, by switching the wrapper to a div.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2019-12-07 | Topics: [React](https://flaviocopes.com/tags/react/) | Canonical: https://flaviocopes.com/react-fix-dangerouslysetinnerhtml-did-not-match/

I was trying to print the HTML contained in a prop, using `dangerouslySetInnerHTML`, while I got this error in the browser console:

```
Warning: Prop `dangerouslySetInnerHTML` did not match.
```

This was a [Next.js](https://flaviocopes.com/nextjs/) project, but the solution applies to any [React](https://flaviocopes.com/react/) code.

The string I was trying to print appeared for a while, and then disappeared. Quite strange!

It was even stranger when I tried to print a fixed HTML string, like this:

```jsx
<p
  dangerouslySetInnerHTML={{
    __html: '<p>test</p>'
  }}></p>
```

The error message is cryptic but after a while, I realized I could not set a `p` tag inside another `p` tag.

Switching to:

```jsx
<div
  dangerouslySetInnerHTML={{
    __html: '<p>test</p>'
  }}></div>
```

worked like a charm.
