[react]文字列をinnerHTMLなどのHTML(JSX)として出力
7891 ワード
データをAPIにインポートしてマッピングし、画面上のHTMLタグをStringとして出力します.
NAVER APIでは,検索語に該当する部分が
通常、コードにHTMLを設定する動作は、サイト間スクリプト(XXS)攻撃にさらされます.したがって、危険性を警告するためには、
📎 危険なSetInnerHTMLドキュメント
dangerously...🔥 危険な感じがしますが、
return (
<div className="search-result">
<ul className="result-list">
{
list && list.map((item) => (
<li key={ item.isbn }>
<h2>{ item.title }</h2>
<span>{ item.author }</span>
</li>
))
}
</ul>
</div>
)
NAVER APIでは,検索語に該当する部分が
<b></b>
タグで包まれている.このタグをStringタグではなくJSXタグに設定します.解決策
dangerouslySetInnerHTML
dangerouslySetInnerHTML
は、DOMにおいてinnerHTML
の反応剤を使用する代替方法である.通常、コードにHTMLを設定する動作は、サイト間スクリプト(XXS)攻撃にさらされます.したがって、危険性を警告するためには、
dangerouslySetInnerHTML
を記述し、__html
キーでオブジェクトを伝達しなければならない.📎 危険なSetInnerHTMLドキュメント
dangerously...🔥 危険な感じがしますが、
dangerouslySetInnerHTML
かinnerHTML
かコードでHTMLを設定するので、どちらも注意して使いましょう.innerHTML
を使用してDOMの変更を認識できません.逆に,dangerouslySetInnerHTML
を用いて仮想DOMを実際のDOMと比較すると,変更箇所を再現できる.return (
<div className="search-result">
<ul className="result-list">
{
list && list.map((item) => (
<li key={ item.isbn }>
<h2 dangerouslySetInnerHTML={{__html: item.title}}></h2>
<span>{ item.author }</span>
</li>
))
}
</ul>
</div>
)
Reference
この問題について([react]文字列をinnerHTMLなどのHTML(JSX)として出力), 我々は、より多くの情報をここで見つけました https://velog.io/@nemo/string-to-jsxテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol