antd Select onChange获取除了value其他的值

1,180 阅读1分钟

在日常工作中,有时候需要获取下拉选择框除了value其他的值,在antd 官网中 可以使用api labelInValue; 每个选项的 label 包装到 value 中,会把 Select 的 value 类型从 string 变为 { value: string, label: ReactNode } 的格式

但是实际开发过程中这种远远不能满足需要:


import { Select } from 'antd';
const { Option } = Select;
 
const opts = [
    {label:'1',value:1,data:{label:'这里用你的数据',value:[1,2,3,4]}},
    {label:'2',value:2,data:{label:'博客名:',value:'superTiger_y'}},
]
 
// evt 就是在opt中中绑定的data
  function handleChange(value, evt) {
    console.log('这里能拿到你在opts中定义的数据data:', evt);
  }
 
ReactDOM.render(
  <>
     <Select
        defaultValue="lucy"
        style={{ width: 120 }}
        onChange={handleChange}
      >
        {opts.map((item, index) => (
          <Option value={item?.value} key={index} data={item?.data}>
            {item?.label}
          </Option>
        ))}
      </Select>
  </>,
  mountNode,
);

antd select.gif