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

React下拉菜单defaultValue属性无法正确设置问题求助

下拉菜单默认值设置失效问题

我遇到了下拉菜单默认值设置不正确的问题:希望默认值为"random_name_to_protect_privacy",但它始终显示传入数组的第一个元素'fpc0',使用defaultValue属性也没有效果。

父组件代码

return(
<div>
...
          <label>
            &nbsp;&nbsp; Location: &nbsp;
            <MenuDropdown bots={props.botsList} onSelect={handlebotsChange} defaultValue="re0"/>
          </label> 
</div>
);

子组件代码

const MenuDropdown = (props) => {
  let bots = props.bots

  const handleSelect = (event) => {
    const selectedbots = event.target.value;
    console.log("selected bots", selectedBot)
    props.onSelect(selectedBot)
  };

  return (
    <select onChange={(e) => handleSelect(e)} defaultValue={props.defaultValue}>
      {bots.map((bot) => (
        <option key={bot} value={bot}>
          {bot}
        </option>
      ))}
    </select>
  );
}

错误情况说明

  • 默认值错误显示:下拉框自动选中数组第一个元素'fpc0',而非预期的"random_name_to_protect_privacy"
  • 预期默认值已存在于下拉选项列表中(红框标注项)

问题原因

  1. 传入的defaultValue与预期值不匹配:
    父组件给MenuDropdown传的defaultValue是"re0",但你期望的默认值是"random_name_to_protect_privacy",参数传错了。如果defaultValue对应的选项不在下拉选项数组里,浏览器会自动选中第一个选项。
  2. 子组件存在变量拼写错误:
    handleSelect函数里,定义的变量是selectedbots,但后续打印和传递给父组件的却是selectedBot(大小写不一致,少了末尾的s),这会导致传递给父组件的是undefined,虽然不直接影响默认值,但会破坏选择后的逻辑。
  3. 需确认预期值是否真的在选项数组中:
    虽然你说预期值在选项里,还是要检查props.botsList数组是否确实包含"random_name_to_protect_privacy"。如果数组里没有这个值,defaultValue不会生效,下拉框只能选第一个元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:13:27