在這里,我有類似下面的 HTMLElement
<div id='hiddenDiv'>
<div>foobar</div>
</div>
我正在做類似下面的嘗試將其轉換為 JSX.Element:
function renderMailCompose(): JSX.Element {
const content = document.getElementById('hiddenDiv');
return content;
}
但我收到錯誤
型別 'HTMLElement' 缺少型別 'ReactElement<any, any>' 中的以下屬性:type、props、key
我想知道如何將包含所有內容的 div 正確轉換為 JSX.Element。任何幫助,將不勝感激!
uj5u.com熱心網友回復:
通常,除非您有使用 的特定原因,否則getElementById我們通常想要做的為了在 React 中將元素存盤在變數中,是使用內置useRef鉤子。
所以你可以這樣做 -
const hiddenDivRef = useRef<HTMLDivElement>(null);
return (
<div ref={hiddenDivRef}>
<div>foobar</div>
</div>
);
之后我們可以像這樣訪問值 -
console.log(hiddenDivRef.current);
您還可以使用您通常擁有的所有相關功能,
即 -.focus()等...
- 注意:鉤子不是存盤元素所獨有的。
uj5u.com熱心網友回復:
您可以使用 html-react-parser 來渲染 html,如下所示:
npm install html-react-parser --save
import parse from 'html-react-parser';
function renderMailCompose(): JSX.Element {
const content = document.getElementById('hiddenDiv');
return parse(content.innerHTML);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/364894.html
標籤:javascript 反应 打字稿
上一篇:(Javascript)將句子中的第二個單詞設為大寫
下一篇:在構建期間不執行測驗
