Reactjs 在DraftJS中将实体添加到其自己的块中

Reactjs 在DraftJS中将实体添加到其自己的块中,reactjs,wysiwyg,draftjs,Reactjs,Wysiwyg,Draftjs,因此,我正试图为我的项目创建一个相当简单的WYSIWYG BBCode编辑器,以此作为一个机会,让我的头脑围绕DraftJS。我一直在学习一些教程,并以它为例(因为它有99%的我需要的功能,而且看起来比较容易理解) 我一直想解决的问题是,react-rte内联插入图像实体(它在当前选择中添加一个空格,然后将一个条目绑定到该空格),如下所示: const addEntity=(editorState,type,MUTABLE='MUTABLE',data={})=>{ 让currentConten

因此,我正试图为我的项目创建一个相当简单的WYSIWYG BBCode编辑器,以此作为一个机会,让我的头脑围绕DraftJS。我一直在学习一些教程,并以它为例(因为它有99%的我需要的功能,而且看起来比较容易理解)

我一直想解决的问题是,
react-rte
内联插入图像实体(它在当前选择中添加一个空格,然后将一个条目绑定到该空格),如下所示:

const addEntity=(editorState,type,MUTABLE='MUTABLE',data={})=>{
让currentContent=editorState.getCurrentContent();
让selection=editorState.getSelection();
currentContent=currentContent.createEntity(类型、可变性、数据);
让entityKey=currentContent.getLastCreatedEntityKey();
返回修饰符.insertText(currentContent,selection',null,entityKey);
}
我希望每个图像(和视频一样)都在自己的单独块中,这样就没有其他内容可以写入该块。 我在中找到了一个我所追求的行为示例,但我无法通过代码找到正确的实现。

经过数小时的反复试验(以及大量手册),终于找到了解决方案

const addAtomic=(editorState,type,MUTABLE='MUTABLE',data={})=>{
让currentContent=editorState.getCurrentContent();
让selection=editorState.getSelection();
currentContent=currentContent.createEntity(类型、可变性、数据);
让entityKey=currentContent.getLastCreatedEntityKey();
const newState=EditorState.set(EditorState,{currentContent:currentContent})
返回AtomicBlockUtils.insertAtomicBlock(newState,entityKey“”)
}