簡體   English   中英

渲染保存在后端並從后端返回的 HTML?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM