草稿JS Modifier.ReplaceText撤消/重做错误

时间:2017-09-27 07:35:44

标签: javascript reactjs draftjs

背景:

使用Draft-JS,我有一大块代码会在单击'Return'时用实体替换一个单词,所以用户输入'我喜欢茄子'然后'返回'他们应该看到'我喜欢:茄子: “

问题

添加实体后,当我执行撤消(toByteArray(),没有任何花哨)时,它会删除我的所有句子而不仅仅是实体。根据我读到的关于Draft-JS的内容,我原本期望它恢复为“我喜欢茄子”,这是理想的效果。

链接

代码

此代码从完整代码中删除了可读性,但正确地演示了这一点

ctrl z

1 个答案:

答案 0 :(得分:1)

EditorState.push() API说Based on the changeType, this ContentState may be regarded as a boundary state for undo/redo behavior.我发现用户定义的changeType将构成边界,所以只需推动:

变化

const newEditorState = EditorState.set(editorState, { currentContent: newContentState });

const newEditorState = EditorState.push(editorState, newContentState ,"addentity");