Javascript LitElement click函数执行两次

Javascript LitElement click函数执行两次,javascript,typescript,lit-element,Javascript,Typescript,Lit Element,我有两个组件sdk按钮和一个上面的组件 在我的sdk按钮中,我有以下简单代码: public render() { return html` <button @click=${this._handleClick}>${this.text}</button> `; } _handleClick() { let click = new Event('click'); this.dispatchEvent(click); } 这可以工作,

我有两个组件sdk按钮和一个上面的组件

在我的sdk按钮中,我有以下简单代码:

public render() {
    return html`
    <button  @click=${this._handleClick}>${this.text}</button>

`;
}

_handleClick() {
    let click = new Event('click');
    this.dispatchEvent(click);
}

这可以工作,但是changeProperty会被激发两次。有人能告诉我为什么会发生这种情况吗?

我很确定这是因为有两个单击事件:一个是从弹出的按钮发出的本地事件,另一个是您手动发送的事件。尝试使用具有不同名称的自定义事件,或者从sdk按钮中删除分派并使用本机事件。

我很确定这是因为有两个单击事件:从弹出的按钮中发出的本机事件和手动分派的事件。尝试使用具有不同名称的自定义事件,或者从sdk按钮中删除调度,然后使用本机事件。

您可以使用e.preventDefault阻止按钮单击的默认行为,这使单击仅在调度事件中触发。您可以使用e.preventDefault阻止按钮单击的默认行为,这使单击仅触发派遣事件
public render() {
    return html`
  <h1>Hello, ${this.test}!</h1>
  <sdk-button   @click="${() => { this.changeProperty() }}" text="Click"></sdk-button>
`;
}

changeProperty() {
    let randomString = Math.floor(Math.random() * 100).toString();
    console.log(randomString)
}