初学者 - dangerouslySetInnerHTML 后的回调函数
Beginner - Callback function after dangerouslySetInnerHTML
我刚开始学习 React,所以我想知道是否有办法做到这一点,或者即使这是正确的做法。
我的 App.js 中有一个名为 DeckTable
的组件
return (
<>
<DeckTable decksCompared={decksCompared} sideboardsCompared={sideboardsCompared} decks={decks} headerCompared={headerCompared} />
</>
)
在 DeckTable.js 中,我将使用从 App.js 传递的那些值,并使用 dangerouslySetInnerHTML 创建一个 table 连接字符串和 return 它,如下所示:
var html = '<table>...</table>'
return <div dangerouslySetInnerHTML={{ __html: html }} />
这是best/correct的做法吗?如果 table 在屏幕上呈现后我现在需要调用一个函数 where/how 我会这样做吗?
如果你们需要更多信息,请询问。
非常感谢。
初学者简单易懂
function setDangerousHtml(html, el) {
if (el === null) return;
const range = document.createRange();
range.selectNodeContents(el);
range.deleteContents();
el.appendChild(range.createContextualFragment(html));
}
// Your function for any HTML in react
// Usage Very Simple
<div type='link' ref={setDangerousHtml.bind(null,'<YOUR HTML CODE>')}>
</div>
如果你想让 DeckTable return 一个 table 和你传递给 App.js 的道具(decksCompared、sideboardsCompared、decks 和 headerCompared),你可以 return一个 div 和一个 table 在里面使用这些道具。您不需要使用 innerHTML。
我刚开始学习 React,所以我想知道是否有办法做到这一点,或者即使这是正确的做法。
我的 App.js 中有一个名为 DeckTable
的组件return (
<>
<DeckTable decksCompared={decksCompared} sideboardsCompared={sideboardsCompared} decks={decks} headerCompared={headerCompared} />
</>
)
在 DeckTable.js 中,我将使用从 App.js 传递的那些值,并使用 dangerouslySetInnerHTML 创建一个 table 连接字符串和 return 它,如下所示:
var html = '<table>...</table>'
return <div dangerouslySetInnerHTML={{ __html: html }} />
这是best/correct的做法吗?如果 table 在屏幕上呈现后我现在需要调用一个函数 where/how 我会这样做吗?
如果你们需要更多信息,请询问。
非常感谢。
初学者简单易懂
function setDangerousHtml(html, el) {
if (el === null) return;
const range = document.createRange();
range.selectNodeContents(el);
range.deleteContents();
el.appendChild(range.createContextualFragment(html));
}
// Your function for any HTML in react
// Usage Very Simple
<div type='link' ref={setDangerousHtml.bind(null,'<YOUR HTML CODE>')}>
</div>
如果你想让 DeckTable return 一个 table 和你传递给 App.js 的道具(decksCompared、sideboardsCompared、decks 和 headerCompared),你可以 return一个 div 和一个 table 在里面使用这些道具。您不需要使用 innerHTML。