Я использую react-ace
для создания текстового редактора CSS в моем приложении React.
Это выглядит примерно так ...
import Ace from 'react-ace'
...
<Ace
mode="css"
value={value}
onChange={onValueChange}
onValidate={onValidate}
...
/>
...
Это прекрасно работает, выделяя ошибки и предупреждения синтаксиса CSS. Кроме того, onValidate
возвращает структуру данных «аннотации» об ошибках / предупреждениях.
Однако в другом месте приложения необходимо запустить тот же валидатор, который используется в этом компоненте React Ace, но вне контекста этого компонента. По сути, мне нужно передать содержимое в value
через систему аннотаций ошибок / предупреждений, но я не могу создать экземпляр этого реагирующего элемента.
Я пробовал следующее:
import { EditSession } from 'brace'; # "brace" is the "module" compatible version of the ace editor that our "react-ace" uses
import 'brace/mode/css';
export const getCssAnnotations = (value)=> {
const editSession = new EditSession(value);
editSession.setMode('ace/mode/css');
const annotations = editSession.getAnnotations();
return annotations;
};
Однако аннотации, возвращаемые этой функцией, всегда []
! Я предполагаю, что это потому, что я просто обращаюсь к интерфейсу установки / получения аннотаций, а не запускаю создателя аннотаций. Но я не могу понять, как на самом деле работают аннотации.
Я посмотрел документы по Создание подсветки синтаксиса для Ace , но не понимаю, зачем / зачем здесь нужно привлекать веб-работника.
Спасибо!