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

React-Select:能否在options数组中声明selected实现默认选中?

React-Select 默认选中选项的正确方式

嘿,直接在options数组里给选项加selected属性是行不通的哦!React-Select并不支持这种原生HTML select的写法,它的选中状态是通过组件自身的属性来控制的,下面给你两种常用的实现方式:

非受控模式(适合无需手动维护状态的场景)

使用defaultValue属性,传入你想要默认选中的那个选项对象(要和options里的value和label完全匹配):

<Select
  onChange={this.changeUser}
  defaultValue={{ value: 2, label: 2 }}
  options={[
    { value: 1, label: 1 },
    { value: 2, label: 2 },
    { value: 3, label: 3 }
  ]}
/>

受控模式(适合需要主动控制选中状态的场景)

通过组件的状态来维护选中值,配合value属性使用:

class UserSelector extends React.Component {
  // 初始化状态时设置默认选中项
  state = {
    selectedUser: { value: 2, label: 2 }
  };

  changeUser = (selectedOption) => {
    this.setState({ selectedUser: selectedOption });
  };

  render() {
    const { selectedUser } = this.state;
    return (
      <Select
        value={selectedUser}
        onChange={this.changeUser}
        options={[
          { value: 1, label: 1 },
          { value: 2, label: 2 },
          { value: 3, label: 3 }
        ]}
      />
    );
  }
}

多选场景的补充

如果是多选的Select组件(设置isMulti={true}),只需要把defaultValue或value改成数组形式即可:

<Select
  isMulti
  onChange={this.changeUsers}
  defaultValue={[{ value: 2, label: 2 }]}
  options={[/* 选项数组 */]}
/>

简单总结下:React-Select的选中逻辑和原生select不同,别再想着给options加selected啦,用defaultValue或value才是正确姿势~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:42:13