Как убрать упоминания из редакции в черновике JS?

Занимался этим долгое время и не могу понять это.

У меня есть два компонента, контролируемые родительским компонентом. Есть свойство под названием "выбранный". Таким образом, когда пользователь нажимает на список, он обновляет родительский компонент selected свойство, которое передается TagInput, который использует MentionPlugin от сквозняков

Чтобы справиться с этим, я реализую componentWillReceiveProps это выглядит следующим образом.

componentWillReceiveProps(nextProps) {
  const { initialTags: newTags } = nextProps;
  const previousTags = this.getTags(this.state.editorState);

  if (previousTags.length !== newTags.length) {
    const added = newTags.filter(tag => !previousTags.includes(tag));
    const removed = previousTags.filter(tag => !newTags.includes(tag));

    this.addMentions(added);
    this.removeMentions(removed);
  }
}

Хотя легко добавлять объекты в addMentions создавая новую сущность и вставляя ее, на всю жизнь я не могу понять, как получить Mention по тексту, а затем удалите его из редактора.

removeMentions(tags) {
  const { editorState } = this.state;
  for (const tag of tags) {
    // find tag in editor
    // select it and remove it
  }
}

Как это будет сделано?

0 ответов

Другие вопросы по тегам