[英]Render HTML that is saved in and returned from Backend?
我正在做一個項目,我從后端取回一個字符串,其中包含一些 html。 我現在想把這個 html 放入gatsby
:
let htmlFromBackend = `<b>Hello there</b>, partner!`
return (
<div>
{htmlFromBackend}
</div>
)
但是,這會將 html 打印為純文本,所以我在屏幕上看到的字面意思是:
<b> Hello there</b>, partner!
而它應該是
你好,伙伴!
如何將其呈現為正確的 html?
您可以使用dangerouslySetInnerHTML但請確保您信任來自后端的數據,因為您無法獲得任何免受XSS 攻擊的保護。
let htmlFromBackend = `<b>Hello there</b>, partner!`
return (
<div dangerouslySetInnerHTML={{ __html: htmlFromBackend }} />
)
您可以使用useRef
掛鈎並設置元素的innerHTML
:
const ref = useRef(null);
useEffect(() => {
let htmlFromBackend = `<b>Hello there</b>, partner!`;
ref.current.innerHTML = htmlFromBackend;
}, []);
return <div ref={ref} />;
安裝 html-react-parser
npm i html-react-parser;
並且在組件中
import Parser from 'html-react-parser';
let htmlFromBackend = `<b>Hello there</b>, partner!`
return (
<div>
{Parser((htmlFromBackend)}
</div>
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.