如何解决在 convertToRaw 上的 Draft JS linkify/mentions 插件删除了锚标记
我正在使用草稿 js 编辑器及其链接化和提及插件。 添加链接和提及链接在编辑器上工作正常,但当我尝试获取 html 时,锚标记将从内容中删除。
我的编辑器
return (
<div
className={editorStyles.editor}
style={{ height: '150px',padding: '10px' }}
onClick={() => {
ref.current.focus();
}}>
<Editor
editorKey={'editor'}
editorState={editorState}
onChange={onChange}
plugins={plugins}
placeholder={"What's on your mind"}
ref={ref}
/>
<MentionSuggestions
open={open}
onopenChange={onopenChange}
suggestions={mentions}
onSearchChange={onSearchChange}
onAddMention={(e) => {
}}
/>
</div>
);
这就是我试图获取 HTML 的方式
draftToHtml(convertToRaw(_editorState.getCurrentContent()));
如果编辑器有一个链接,比如 google.com,上面的代码会返回纯文本而不是锚标记,尽管它在编辑器中显示了锚标记。与提及相同,我正在添加提及的链接,但也删除了锚标记。 如果我复制粘贴一个链接说 Wikipedia,那么这个锚标记不会被删除。
如何获取这些带有用于链接化和提及的锚标记的 html?需要帮忙。我不是这里的专业人士。
编辑 1: 我进一步检查并发现
我将不得不操纵原始数据以达到必要的结果。
解决方法
呈现的链接是mention/linkify 组件的一部分,而不是文本的一部分。这就是它在导出中丢失的原因。
如果您想在 draftToHtml
的输出中包含链接,您需要使用 customEntityTransform
参数。
从 documentation 开始:
customEntityTransform
可用于将自定义实体块转换为 html。如果存在,它会调用为实体生成 html。它可以带2个参数:
-
entity
(具有{类型、可变性、数据}的对象) -
text
块中的文本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。