В настоящее время я создаю редактор, подобный тому, который используется на medium.com. Для каждого блока unstyled я визуализирую пользовательский компонент, который содержит кнопки редактирования для изменения типа блока этого раздела.
Однако, когда я, например, меняю раздел на header-one и нажимаю кнопку возврата, новый блок также является блоком header-one. Мне нравится видеть, что новый блок - это unstyled, а не тот же тип предыдущего блока.
Есть идеи, как это сделать?
Редактировать
После еще нескольких поисков и попыток я сам нашел решение! Похоже, что лучший способ сделать это - вставить новый блок при срабатывании ключевой команды split-block. Пример кода ниже:
createEmptyBlock(editorState: Draft.EditorState) {
const newBlock = new Draft.ContentBlock({
key: Draft.genKey(),
type: "unstyled",
text: "",
characterList: Immutable.List()
})
const contentState = editorState.getCurrentContent()
const newBlockMap = contentState.getBlockMap().set(newBlock.getKey(), newBlock)
return Draft.EditorState.push(
editorState,
Draft.ContentState
.createFromBlockArray(newBlockMap.toArray())
.set('selectionAfter', contentState.getSelectionAfter().merge({
anchorKey: newBlock.getKey(),
anchorOffset: 0,
focusKey: newBlock.getKey(),
focusOffset: 0,
isBackward: false,
})) as Draft.ContentState,
"split-block"
)
}





Ты только что сэкономил мне столько времени. Спасибо!