You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Lit组件中<input>的@focus事件仅能正确设置状态一次?

Lit组件中date输入框@focus触发radio选中失效问题

在Lit组件中,date类型<input>的@focus事件监听器本应在输入框获焦时选中值为3的radio输入框,但仅能正常工作一次。

复现步骤

  • 首次点击date输入框,selectType变为3,值为3的radio正确选中;
  • 点击值为0的radio输入框切换状态;
  • 再次点击date输入框,selectType虽变为3,但值为0的radio仍处于选中状态。

相关代码

import {html, LitElement} from 'lit';
import {customElement, state} from 'lit/decorators.js';

@customElement('simple-greeting')
export class SimpleGreeting extends LitElement {
  @state() selectType = 0;
  
  private _onChange(event: Event) {
    const target = event.target as HTMLInputElement;
    if (target.name == "date-select")
      this.selectType = parseInt(target.value);
  }

  render() {
    return html`
      <form>
        <label>
          <input type="radio" name="date-select" value="0" ?checked="${this.selectType == 0}" @change="${this._onChange}">
          Today
        </label>
        <span> 
          <input type="radio" name="date-select" value="3" ?checked="${this.selectType == 3}" @change="${this._onChange}">
          <input type="date" name="date-enter" @focus="${() => {this.selectType = 3}}">
        </span>
        <p> this.selectType is ${this.selectType} </p>
      </form>`;
  }
}

环境说明

该问题在Windows系统的Chrome和Firefox浏览器中均存在,将代码转译为React组件后无此异常。

内容的提问来源于stack exchange,提问作者lyfeng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 20:03:11