Исключение трафарета для JSX-слушателя - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь использовать стратегию прослушивания событий JSX, как описано здесь: https://stenciljs.com/docs/events#using-events-in-jsx

однако, когда я настраиваю прослушиватель событий в моем JSX, я получаю следующую ошибку:

Type '{ ref: (el: HTMLElement) => ISubflow; onButtonStateChange:
(ev: CustomEvent<ButtonState>) => void; }' is not assignable to type
 'MyComponentAttributes'. Property 'onButtonStateChange' does
 not exist on type 'MyComponentAttributes'.

MyComponent имеет это определение события:

@Event() onButtonStateChange: EventEmitter<ButtonState>;

, а JSX выглядит так:

<my-component
            ref={(el)=> this.currentSubflow = (el as unknown) as ISubflow}
            onButtonStateChange={(ev:CustomEvent<ButtonState>) => this.onButtonStateChanged(ev)} />

1 Ответ

0 голосов
/ 15 февраля 2019

О, черт возьми, это подлый ~!

JSX-события следуют соглашению об именах!Все, что мне нужно было сделать, это изменить

@Event() onButtonStateChange: EventEmitter<ButtonState>;

на

@Event() buttonStateChange: EventEmitter<ButtonState>;

, а материал Sencil / JSX добавляет on к событию, чтобы прослушать его!

...