UNPKG

862 BJavaScriptView Raw
1import React from "react";
2import { Select } from "antd";
3const { Option } = Select;
4/**
5 * 通用的下拉选择
6 * @param {Array} data - {value, name}
7 * @param {Function} onChange(value) - 选中回调
8 * @param {Function} onSelect(itemData) - 选中回调
9 */
10export default function SelectCommon({
11 data,
12 onChange,
13 onSelect,
14 getName,
15 ...rest
16}) {
17 const _onChange = value => {
18 onChange(value);
19 if (onSelect) {
20 onSelect(data.find(item => item.value === value));
21 }
22 };
23
24 const _getName = item => {
25 if (getName) {
26 return getName(item);
27 } else {
28 return item.name;
29 }
30 };
31
32 return (
33 <Select placeholder="请选择" onChange={_onChange} {...rest}>
34 {data.map(item => (
35 <Option key={item.value} value={item.value}>
36 {_getName(item)}
37 </Option>
38 ))}
39 </Select>
40 );
41}