Как убрать упоминания из редакции в черновике 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
}
}
Как это будет сделано?