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

React项目中Chrome安卓端Select需二次点击触发事件问题

React Select组件在安卓Chrome中需点击两次才触发事件的解决方法

问题根源在于你给<select>绑定了onClick事件,在安卓Chrome的交互逻辑里:

  • 第一次点击<select>是唤起选项选择面板,此时不会触发onClick
  • 第二次点击选中选项后,才会触发onClick,导致需要两次操作才能触发目标逻辑

正确的做法是使用<select>元素的标准事件onChange,它会在用户选中新选项时立即触发,适配所有端的交互逻辑。

修改后的代码如下:

// 函数部分
const [Municipios, setMunicipios] = useState("");

const cargarMunicipio = function(e){
  const opcion = e.target.value;
  setMunicipios(opcion);
  console.log("Municip", opcion)
}

// 渲染部分
<select name="categorias" id="setCategorias" onChange={cargarMunicipio} className="inputt3" required>
  { 
    idDepartamentos >= 0 &&(
      departamentos[idDepartamentos].ciudades.map((item,i)=>(
        <option key={i} value={item}> {item}</option>
      ))
    )
  }
</select>

如果你的业务逻辑确实需要在点击<select>唤起面板时执行操作,可以额外绑定onTouchStart事件(针对移动端)配合onClick,但针对当前需求(选中选项后更新状态),onChange是最直接且跨端兼容的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 00:27:06