0

我有一个案例,我可以点击一个实体,然后选择新的内容来替换整个实体。例如:

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()但值似乎不可靠。

我应该如何获得实体的正确开始和结束偏移量?或者,有没有更好的方法来解决这个问题?

4

1 回答 1

0

我找到了一个名为draftjs-utils的库,它有一个名为的方法getEntityRange,它能够为我提供所需的开始和结束偏移量。

于 2019-01-10T17:44:36.090 回答