Потеря выбора после мутации

Я делаю некоторые хитрые мутации состояния на editorState и теряю выбор.

Мне нужно получить currentText (), преобразовать в HTML с некоторой магической библиотекой и преобразовать его обратно в editorState. Это прекрасно работает, это просто выбор, который ломается так сильно.

Прямо сейчас я пытаюсь получить выбор с первого начала, а затем сделатьforceSelection, но завершается с ошибкой, связанной сselection.hasFocus() (это, кажется, не совсем связано ...).

Я предполагаю, что мне нужно рассчитать «новый» выбор на основе якорей и смещений, но не совсем уверен, есть идеи для этого?

Прямо сейчас мой код выглядит так:

// onChangeHandler:

const currentContentState = editorState.getCurrentContent()
const selectionState = editorState.getSelection()

const plainHtml = magicOperation(currentContentState.getPlainText())

const currentContentBlocks = convertFromHTML(plainHtml)
const contentState = ContentState.createFromBlockArray(currentContentBlocks)

const newEditorState = EditorState.createWithContent(contentState)

this.setState({
  editorState: EditorState.forceSelection(
    newEditorState,
    selectionState
  )
})

Это хак, я знаю, что я просто играю с DraftJS. Если я смогу добиться этого, в случае, если я сделаю так, чтобы я работал гладко, я бы определенно использовал Decorator для добавления HTML-кода в editorState.

Спасибо за ваше время!

Ответы на вопрос(1)

Ваш ответ на вопрос