我想通过用 React 组件(即和)替换特定标签(例如<p>
和)来呈现一大块 html<a>
<StyledParagraph>
<StyledLink>
我测试了许多库,包括 html-react-parser。与许多其他人不同,html-react-parser 有一个满足我需求的示例。但是,我无法让这个例子起作用。(使用反应 16.5.3)
const test = () =>
<>
{parse(
`
<p id="main">
<span class="prettify">
keep me and make me pretty!
</span>
</p>
`,
{
replace: ({ attribs, children }) => {
if (!attribs) return;
if (attribs.id === 'main') {
return (
<h1 style={{ fontSize: 42 }}>
{domToReact(children)}
</h1>
);
} else if (attribs.class === 'prettify') {
return (
<span style={{ color: 'hotpink' }}>
{domToReact(children)}
</span>
);
}
}
}
)}
</>
我没有传递parserOptions
给该domToReact
函数,因为我还没有找到这些选项的文档。
预期成绩:
<h1 style="font-size:42px">
<span style="color:hotpink">keep me and make me pretty!</span>
</h1>
到目前为止,我无法修改嵌套节点(在本例中<span>
)。
实际结果:
<h1 style="font-size: 42px;">
<span class="prettify">keep me and make me pretty!</span>
</h1>