„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie rendere ich HTML-Strings in React sicher mit dangerouslySetInnerHTML?

Wie rendere ich HTML-Strings in React sicher mit dangerouslySetInnerHTML?

Veröffentlicht am 18.11.2024
Durchsuche:920

How to Safely Render HTML Strings in React Using dangerouslySetInnerHTML?

HTML-Zeichenfolgen sicher als HTML rendern

In diesem Szenario tritt das Problem auf, wenn versucht wird, eine normale Zeichenfolge mit HTML-Inhalten darzustellen, dies jedoch nicht der Fall ist erscheint stattdessen als String, ohne als HTML interpretiert zu werden. Dies tritt typischerweise dann auf, wenn die in „dangerouslySetInnerHTML“ verwendete Eigenschaft ein Objekt und kein String ist.

Um dieses Problem zu beheben, stellen Sie sicher, dass die Eigenschaft „this.props.match.description“ ein String ist. Ist dies nicht der Fall, konvertieren Sie es in HTML, bevor Sie es der Eigenschaft zuweisen.

Umgang mit HTML-Entitäten

Beim Umgang mit HTML-Entitäten treten zusätzliche Komplikationen auf. In solchen Fällen müssen Sie die Entitäten dekodieren, bevor Sie sie an hazardlySetInnerHTML übergeben.

Beispielcode

Betrachten Sie den folgenden Beispielcode:

class App extends React.Component {
  constructor() {
    super();
    this.state = {
      description: '

Our Opportunity:

', }; } htmlDecode(input) { const e = document.createElement('div'); e.innerHTML = input; return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue; } render() { return (
); } } ReactDOM.render(, document.getElementById('root'));

In diesem Beispiel enthält die Beschreibungseigenschaft HTML-Entitäten (). Um es korrekt darzustellen, wird die Funktion htmlDecode verwendet, um diese Entitäten zu dekodieren, bevor der HTML-Code an hazardlySetInnerHTML übergeben wird.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3