Enthält this.props.match.description
Ist ein String oder ein Objekt? Wenn es sich um eine Zeichenfolge handelt, sollte diese problemlos in HTML konvertiert werden. Beispiel:
class App extends React.Component {
constructor() {
super();
this.state = {
description: '<h1 style="color:red;">something</h1>'
}
}
render() {
return (
<div dangerouslySetInnerHTML={{ __html: this.state.description }} />
);
}
}
ReactDOM.render(<App />, document.getElementById('root'));
Ergebnis: http://codepen.io/ilanus/pen/QKgoLA?editors=1011
Wenn Sie jedoch description: <h1 style="color:red;">something</h1>
keine Anführungszeichen ''
haben, erhalten Sie:
Object {
$$typeof: [object Symbol] {},
_owner: null,
key: null,
props: Object {
children: "something",
style: "color:red;"
},
ref: null,
type: "h1"
}
Wenn es sich um eine Zeichenfolge handelt und Sie kein HTML-Markup sehen, ist das einzige Problem, das ich sehe, ein falsches Markup.
AKTUALISIEREN
Wenn Sie es mit HTMLEntitles zu tun haben. Sie müssen sie entschlüsseln, bevor Sie sie an senden dangerouslySetInnerHTML
, deshalb haben sie es gefährlich genannt :)
Arbeitsbeispiel:
class App extends React.Component {
constructor() {
super();
this.state = {
description: '<p><strong>Our Opportunity:</strong></p>'
}
}
htmlDecode(input){
var e = document.createElement('div');
e.innerHTML = input;
return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
}
render() {
return (
<div dangerouslySetInnerHTML={{ __html: this.htmlDecode(this.state.description) }} />
);
}
}
ReactDOM.render(<App />, document.getElementById('root'));