替换内容块

时间:2016-05-16 12:37:17

标签: draftjs

家伙!请帮忙。

我想要的是什么:当从新行开始时,用户键入一个URL并按Enter我想删除包含该URL的块并将其替换为自定义{{1} }}。与文档中的Media示例非常相似,但没有Entity按钮。

我尝试了什么:(只是草稿)

Add image

它几乎可以满足我的需要,但是按下退格键无法删除插入的块,光标只会跳到右上角。

我的问题:更换积木的推荐方法是什么?你怎么删除一个块?为什么我的插入块不会被删除?

谢谢!

1 个答案:

答案 0 :(得分:1)

我最终使用Modifier.removeRange而不是a来解决这个问题。您可以做的就是找到URL的初始索引和URL的最后索引(让我们分别称为blet newSelection = editorState.getSelection(); newSelection = newSelection.merge({ anchorOffset: a, focusOffset: b }); let newContent = Modifier.replaceText(editorState.getCurrentContent(), newSelection, ""); let newState = EditorState.push(editorState, newContent, 'insert-characters'); this.setState({ editorState: newState }); ),我们可以执行以下操作:

newSelection

您还可以根据需要定义ContentBlocks,因此,如果您希望按{{1}}进行分区,则可以。