8

我正在努力使实体样式按照我希望使用 Draft-js 的方式工作。我通过选择自动完成组件中的项目将样式实体添加到我的输入中。当我选择一个时,它可以工作,但插入符号会留在实体内,直到我添加另一个字符。有没有办法在实际实体之后移动插入符号而不添加空格?

我正在使用一个名为 的库draft-js-autocomplete,如有必要,我不介意提出拉取请求。

为了显示:

自动完成选择 选择后

4

1 回答 1

0

您必须在此处添加一个空字符。

 const newContentState = Modifier.insertText(
contentStateWithEntity,
currentSelection,
`...` + '\u200A',
null,
entityKey);

此外,您将不得不调整您的策略如下:

    function placeholderFieldStrategy(contentBlock, callback, contentState) {
  contentBlock.findEntityRanges(
    (character) => {
      const entityKey = character.getEntity();
      return (
        entityKey !== null &&
        contentState.getEntity(entityKey).getType() === 'PLACEHOLDER_FIELD'
      );
    },
    (start, end) => callback(start, end - 1)
  );
}
于 2022-01-28T17:38:20.553 回答