У меня есть следующие настройки:
const [editorState, setEditorState] = React.useState<EditorState>(RichUtils.toggleBlockType(EditorState.createWithContent(blocks, decorator), style))
const estate = RichUtils.getCurrentBlockType(editorState)
if (estate !== style)
setEditorState(RichUtils.toggleBlockType(editorState, style))
return <>
<div onClick={() => {
editorRef.current!.focus()
}}>
<Editor
ref={editorRef}
editorState={editorState} onChange={(newState) => {
if (isPreviewMode) {
return;
}
const nextStyle = RichUtils.getCurrentBlockType(newState)
if (nextStyle !== style)
newState = RichUtils.toggleBlockType(newState, style)
const newRaw = convertToRaw(newState.getCurrentContent())
setEditorState(newState)
}} />
Идея состоит в том, что типом блока всегда должен быть тот тип блока, который мне нужен (т. Е. Header-one, абзац и т. Д.), Поэтому он переключится на нужный тип блока, если изменит его.
Проблема в том, что если у меня есть текст на двух блоках, например:
abc
123
Если я пытаюсь вернуться на 123 после abc, курсор застревает на первой пустой строке abc.