Установить SelectionState для объекта при нажатии - PullRequest
0 голосов
/ 10 января 2019

У меня есть случай, когда я могу нажать на объект, а затем выбрать новый контент, чтобы заменить весь объект. Например:

Here is some text [special entity] and some more text
                       ^ click anywhere inside the brackets

После выбора нового контента он заменяет старый текст сущности и становится:

Here is some text [my new entity] and some more text

В основном я пытаюсь сделать:

const newSelectionState = SelectionState.createEmpty(key).merge({
  anchorOffset: entityStart,
  focusOffset: entityEnd
});

Я пытался использовать currentContentState.getSelectionBefore(key).getStartOffset() и currentContentState.getSelectionAfter(key).getStartOffset(), но значения кажутся ненадежными.

Как мне получить правильные начальные и конечные смещения для объекта? Или есть лучший способ решить эту проблему?

1 Ответ

0 голосов
/ 10 января 2019

Я нашел библиотеку с именем draftjs-utils , в которой есть метод с именем getEntityRange, и он может дать мне начальные и конечные смещения, которые мне нужны.

...