EditorState对象的push()没有modify-blockMap
时间: 2024-02-27 07:57:38 浏览: 79
modify-http-headers Chrome插件-20190820
5星 · 资源好评率100%
非常抱歉,我的回答有误。EditorState对象的push()方法确实没有`modify-blockMap`参数。这是我犯了一个错误。
在实际使用中,可以将`push()`方法的第三个参数设置为一个任意的字符串,用于标识对EditorState的修改操作。这样,您就可以使用`undo()`和`redo()`方法撤消和重做这些操作。
以下是一个更新blockMap并将修改操作标记为“update-blockMap”的示例代码:
```
const contentState = editorState.getCurrentContent();
const blockMap = contentState.getBlockMap();
const newBlockMap = blockMap.map(block => {
if (block.getType() === 'unstyled') {
const newText = block.getText() + ' [Modified]';
return block.set('text', newText);
}
return block;
}).toList();
const newContentState = ContentState.createFromBlockArray(newBlockMap);
const newEditorState = EditorState.push(editorState, newContentState, 'update-blockMap');
setEditorState(newEditorState);
```
请注意,`push()`方法的第三个参数只是一个标识符,没有预定义的值。您可以使用任何字符串,只要它能够唯一标识您的修改操作即可。
阅读全文