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

如何在ProFormSelect组件的onChange事件中获取选中选项的value与label

如何在ProFormSelect组件的onChange事件中获取选中选项的value与label

嘿,这个问题我之前也碰到过!ProFormSelect默认的onChange确实只返回选中的value,但有两种简单的方法能同时拿到对应的label,我给你详细说说:

方法一:通过选项数组匹配对应的label

把选项列表单独抽出来复用,在onChange触发时,用选中的value去数组里找到对应的选项,就能拿到label了:

import { useState } from 'react';
import { ProFormSelect } from '@ant-design/pro-components';

const YourComponent = () => {
  const [taskId, setTaskId] = useState();
  const [taskLabel, setTaskLabel] = useState();

  // 单独定义选项数组,方便后续匹配
  const taskOptions = [
    { value: "1", label: "A" },
    { value: "2", label: "B" },
  ];

  return (
    <ProFormSelect
      onChange={(value) => {
        setTaskId(value);
        // 根据value找到对应的选项
        const selectedOption = taskOptions.find(item => item.value === value);
        if (selectedOption) {
          setTaskLabel(selectedOption.label);
        }
      }}
      name="task"
      label="Task"
      options={taskOptions}
    />
  );
};

export default YourComponent;

方法二:利用fieldProps传递原生Select的回调

ProFormSelect是基于Ant Design的Select组件封装的,我们可以通过fieldProps传递原生Select的onChange方法,这个方法的第二个参数就是选中的完整option对象,直接就能拿到label:

import { useState } from 'react';
import { ProFormSelect } from '@ant-design/pro-components';

const YourComponent = () => {
  const [taskId, setTaskId] = useState();
  const [taskLabel, setTaskLabel] = useState();

  return (
    <ProFormSelect
      fieldProps={{
        onChange: (value, option) => {
          setTaskId(value);
          // 直接从option中获取label
          setTaskLabel(option.label);
        }
      }}
      name="task"
      label="Task"
      options={[
        { value: "1", label: "A" },
        { value: "2", label: "B" },
      ]}
    />
  );
};

export default YourComponent;

两种方法各有适用场景:方法一适合选项固定的静态场景,方法二更灵活,尤其是当选项是动态生成的时候,直接拿option对象会更可靠哦!

备注:内容来源于stack exchange,提问作者Andish

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 11:59:52