选择器常用在表单中,以帮助用户快速输入表单内容,选择器适合有固定选项的数据录入,或者大佬数据需要借助选择器筛选以输入表单内容。
通过 option
属性来设置 Select 组件的选项。
通过 defaultValue
属性设置 Select 组件的默认值。
通过 disabled
属性来禁用 Select 组件。
通过 loading
属性设置 Select 组件的加载中状态。
通过 allowClear
属性设置选中内容是否可清除。
2
const { Option } = Select;
5
<Select style={{ width: '180px' }} placeholder="请选择" allowClear>
6
<Option value="China">按 CPU 平均负载排行</Option>
7
<Option value="USA">按内存用量排行</Option>
8
<Option value="Russian">按磁盘用量排行</Option>
9
<Option value="France">按磁盘用量排行2</Option>
11
<Select defaultValue="China" style={{ width: '120px', marginLeft:'20px'}} disabled>
12
<Option value="China">China</Option>
14
<Select defaultValue="China" style={{ width: '120px',marginLeft:'20px'}} loading>
15
<Option value="china">China</Option>
17
<Select defaultValue="China" style={{ width: '120px', marginLeft:'20px'}} allowClear>
18
<Option value="china">China</Option>
展开后可对选项进行搜索。
通过 showSearch
设置显示搜索按钮。
2
<Select allowClear style={{ width: '120px' }} placeholder="请选择" showSearch>
3
<Select.Option value="CentOs-5.8">CentOs 5.8 32bit</Select.Option>
4
<Select.Option value="CentOs-6.6">CentOs 6.6 64bit</Select.Option>
5
<Select.Option value="CentOs-7">CentOs 7 64bit</Select.Option>
多选,从已有条目中选择。
通过 mode
属性设置为 multiple 可以将 Select 组件变为多选。
2
<Select style={{ width: '300px' }} placeholder="请选择" allowClear mode="multiple" showArrow>
3
<Select.Option value="CPU">按 CPU 平均负载排行</Select.Option>
4
<Select.Option value="RAM">按内存用量排行</Select.Option>
5
<Select.Option value="DISK">按磁盘用量排行</Select.Option>
tag select, 随意输入的内容。
通过将 mode
属性设置为 tags 可以使 Select 组件变为标签选择。
3
for (let i = 10; i < 36; i++) {
4
children.push(<Option key={i.toString(36) + i}>{i.toString(36) + i}</Option>);
7
function handleChange(value) {
8
console.log(`selected ${value}`);
11
<Select mode="tags" style={{ width: '100%'}} placeholder="Tags mode" onChange={handleChange}>
通过 OptGroup 组件进行选项分组。
2
const { OptGroup } = Select;
3
function handleChange(value){
4
console.log(`selected ${value}`);
7
<Select defaultValue="JS" style={{ width: 200 }} onChange={handleChange}>
8
<OptGroup label="JavaScript">
9
<Option value="React">React</Option>
10
<Option value="Vue">Vue</Option>
12
<OptGroup label="node">
13
<Option value="koa">koa</Option>
只在 tags 和 multiple 模式下可用。
通过 tokenSeparator
设置分词分隔符。
3
for (let i = 10; i < 36; i++) {
4
children.push(<Option key={i.toString(36) + i}>{i.toString(36) + i}</Option>);
6
function handleChange(value){
7
console.log(`selected ${value}`);
12
style={{ width: 200 }}
13
onChange={handleChange}
14
tokenSeparator={[',']}>
允许自定义选择标签的样式。
2
const options=[{value:'gold'},{value:'lime'},{value:'green'}]
3
function tagRender(props){
4
const {label,value,closable,onClose} = props;
5
const onPreventMouseDown = event => {
6
event.preventDefault();
7
event.stopPropagation();
12
onMouseDown={onPreventMouseDown}
15
style={{ marginRight: 3 }}
26
defaultValue={['gold','cyan']}
27
style={{ width: '100%'}}
隐藏下拉列表中已选择的选项。
2
const OPTIONS = ['Apples', 'Nails', 'Bananas', 'Helicopters'];
3
const [selectedItems, setSelectedItems] = React.useState([]);
4
function handleChange(selectedItems){
5
setSelectedItems(selectedItems)
7
const filteredOptions = OPTIONS.filter(o => !selectedItems.includes(o));
11
placeholder="Insert are removed"
13
onChange={handleChange}
14
style={{width:'100%'}}
16
{filteredOptions.map(item => (
17
<Select.Option key={item} value={item}>
通过 optionLabelProp 属性指定回填到选择框的 Option 属性。
2
function handleChange(value){
3
console.log(`selected ${value}`);
8
style={{ width:'100%'}}
9
placeholder="select one country"
10
defaultValue={['china']}
11
onChange={handleChange}
12
optionLabelProp="label"
14
<Option value="china" label="China">
15
<div className="demo-option-label-item">
16
<span role="img" aria-label="China">
22
<Option value="usa" label="USA">
23
<div className="demo-option-label-item">
24
<span role="img" aria-label="USA">
30
<Option value="japan" label="Japan">
31
<div className="demo-option-label-item">
32
<span role="img" aria-label="Japan">
38
<Option value="korea" label="Korea">
39
<div className="demo-option-label-item">
40
<span role="img" aria-label="Korea">