Стратегия декоратора вызывается только один раз - PullRequest
0 голосов
/ 29 марта 2019

Моя стратегия стратегии декоратора не вызывается, за исключением случая монтирования.Что не так с моим кодом?

Я пытаюсь следовать этой статье 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

...