Я делаю некоторые хитроумные мутации состояния на 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 Если я могу добиться того, что, в том случае, когда я заставить его работать гладко, я бы определенно использовать Декоратор для добавления HTML внутри редактора.
Спасибо за ваше время!
Да, я реализую объекты вместо convertinfFromHTML и все еще нужно рассчитать выбор. Правильно? – davesnx
№. вам нужно установить свойство anchorKey и focusKey объекта выбора. –
и объединить его с выбором? – davesnx