我是 NextUI 和 React 的新手。我需要将 html 添加到文本区域中,因为我将添加一些突出显示的子字符串,但 html 被解释为纯文本。
下面是我当前的代码。我尝试使用angerouslySetInnerHTML,但文本仍然呈现为纯文本而不是html。我做错了什么?
导出默认函数 Home() {
const text1 = '<a>foo</a>';
return (
<div className="flex flex-col w-full mb-6 md:mb-0 gap-4">
<div className="flex w-full flex-wrap md:flex-nowrap mb-6 md:mb-0 gap-4">
<Textarea
isReadOnly
label="ID 1"
labelPlacement="outside"
value={text1}
dangerouslySetInnerHTML={{ __html: text1 }}
size="lg"
className="resize-y min-h-[200px]"
minRows={18}
maxRows={18}
/>
</div>
<div className="flex justify-center gap-6 w-full mt-4">
<Button color="success" variant="ghost" size="md">Yes</Button>
<Button color="danger" variant="ghost" size="md">No</Button>
</div>
</div>
);
}
我对 NextUI 不熟悉,但是 NextUI Textarea 显然渲染了一个 HTML
textarea
,它只能包含纯文本,并且不渲染 HTML 代码。
所以你无能为力。
dangerouslySetInnerHTML
只是将 HTML 代码放入元素的 innerHTML
内,因此这与尝试在普通 HTML 页面中的 textarea
内添加 HTML 代码基本相同,但不支持。喜欢:
<body>
<textarea>
HTML code in `textarea` is <b>not</b> supported.
</textarea>
</body>