Моя стратегия стратегии декоратора не вызывается, за исключением случая монтирования.Что не так с моим кодом?
Я пытаюсь следовать этой статье https://medium.com/@mshabrikov/draft-js-rich-text-editor-framework-for-react-from-facebook-f236d02576f0
interface ILinkProps {
contentState: ContentState,
entityKey: string,
children: any
}
class ReactEditor extends React.Component<any, any> {
constructor(props: any) {
super(props);
const decorator = new CompositeDecorator([
{
component: Link,
strategy: findLinkEntities
},
]);
this.state = {
editorState: EditorState.createEmpty(decorator),
};
}
public render() {
// ...
}
}
const Link = (props: ILinkProps) => {
const { url } = props.contentState.getEntity(props.entityKey).getData();
console.log(url);
return (
<a href={url} className='link'>
{props.children}
</a>
);
};
function findLinkEntities(contentBlock: ContentBlock, callback: any, contentState: ContentState) {
console.log("decorator Function");
contentBlock.findEntityRanges(
(character) => {
const entityKey = character.getEntity();
return (
entityKey !== null &&
contentState.getEntity(entityKey).getType() === 'LINK'
);
},
callback
);
}
В ряде примеров функция стратегии вызывается при каждом изменении editorState