Вам нужно позволить Draft.js полностью управлять вашими ссылками - вы также должны вставлять ссылки через Draft API.
Чтобы вставить ссылки - используйте RichUtils.toggleLink () API, вы можете найти пример здесь .
Чтобы отобразить ссылки, создайте свой собственный декоратор, который создает элемент ссылки, и зарегистрируйте этот декоратор с draft.js:
const Link = (props) => {
const {url} = Entity.get(props.entityKey).getData();
return (
<a href={url}>{props.children}</a>
)
}
function findLinkEntities(contentBlock, callback) {
contentBlock.findEntityRanges(
(character) => {
const entityKey = character.getEntity();
return (
entityKey !== null &&
Entity.get(entityKey).getType() === 'LINK'
)
},
callback
)
}
const decorators = [
{ strategy: findLinkEntities, component: Link }
]
const editorState = EditorState.createWithContent(state, new CompositeDecorator(decorators))
<Editor decorators={decorators}
editorState={editorState}
... />