我创建了自己的自定义按钮,如下所示
@Component({
tag: "idv-button",
styleUrl: "idv-button.scss",
shadow: true,
})
export class IdvButton {
@Prop({ reflect: true }) text: string;
@Prop({ reflect: true }) disabled: boolean = false;
render(): any {
return (
<button disabled={this.disabled} onClick={this.onClick}>
<span class="btn-text">{this.text}</span>
</button>
);
}
private onClick(event: Event): void {
if (this.disabled) {
console.log("prevent default", event); // it doesn't come here at all
event.preventDefault();
}
}
}
并在 stenciljs 的另一个组件中像这样使用它
<idv-button
text="my button"
disabled={true}
onClick={this.startClick.bind(this)}>
</idv-button>
问题是虽然按钮是disabled
,即使我试图阻止默认,onClick 仍然发生并被this.startClick
调用
我该如何解决这个问题?