模具JSX监听器抛出异常

问题描述 投票:0回答:1

我正在尝试使用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)} />
stenciljs
1个回答
2
投票

哦,伙计,这是一个偷偷摸摸的〜!

JSX事件遵循命名约定!我所要做的就是改变

@Event() onButtonStateChange: EventEmitter<ButtonState>;

@Event() buttonStateChange: EventEmitter<ButtonState>;

并且Sencil / JSX的东西预先将on带到活动中去听!

© www.soinside.com 2019 - 2024. All rights reserved.