2017-02-21 49 views
0

私は、サーバーからAPIを使用してテキストを出力しています。コンテンツを簡単に埋め込むためのhtmlフィールドを持つ管理者がいます。ここでは、HTMLコードで表示されるテキストの問題です。私はどのようにその悪徳のHTMLコードを取り除くことができます。私はhtmlエンティティのデコードを使用しなければならないと思いますか?どのように私は反応プロジェクトでそれを実装するのだろうか?テキストの下にはテキストとHTMLコードだけでなく、react.jsでHTMLエンティティデコードを実装する

enter image description here

export class FullInfoMedia extends React.Component { 
    render() { 
     const renderHTML = (escapedHTML: string) => React.createElement("div", { dangerouslySetInnerHTML: { __html: escapedHTML } }); 

     return (
      <div> 
       <div className="about-title"> 
        <div className="container"> 
         <div className="row"> 
          <img className="center-block" src={this.props.about.image}/> 

          <h2>{this.props.about.title}</h2> 
          {renderHTML(<p>{this.props.about.body}</p>)} 
         </div> 
        </div> 
       </div> 
      </div> 
     ); 
    } 
} 
+0

使用dangerouslySetInnerHTML –

答えて

6

あなたはdangerouslySetInnerHTMLを使用しますが、あなただけの入力ではなく、ユーザーをレンダリングすることを確認することができます。それはXSSにとって素晴らしい方法です。使用の

例:成分で

const renderHTML = (rawHTML: string) => React.createElement("div", { dangerouslySetInnerHTML: { __html: rawHTML } }); 

そして:

{renderHTML("<p>&amp;nbsp;</p>")} 
+0

ので、例えば、コードは、上記にそのコードのようになります。私はちょうど追加、plsは – Feruza

+0

を見直すことができましたが、今は単語 "[オブジェクトオブジェクト]"をレンダリングします – Feruza

+0

renderHTML関数への入力は、オブジェクトではなく文字列でなければなりません。あなたは '

...

'を呼び出していますが、 ''

...

''(引用符付き)を呼び出す必要があります。 –

関連する問題