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

React中如何获取office-ui-fabric Dropdown指定key对应的选项文本值

fundsTypes["PersonalCheque"]取值不生效的原因很简单:fundsTypes是IDropdownOption类型的数组,仅支持数字下标访问,不能直接把选项的自定义key当索引取值。

可直接复用的实现方式

1. 临时查找(适合低频调用场景)

用数组原生find方法匹配目标key对应的选项即可,写法轻量,适合选项数量少、转换频次低的场景:

// 封装通用转换方法,所有Dropdown选项都能复用
const getDropdownTextByKey = (
  optionList: IDropdownOption[],
  targetKey: string | number
): string => {
  const matchedOption = optionList.find(option => option.key === targetKey);
  return matchedOption?.text ?? ''; // 无匹配项时默认返回空串,可按需调整默认值
}

// 调用示例
const displayText = getDropdownTextByKey(fundsTypes, "PersonalCheque");
// 返回结果:"Personal Cheque"

2. 预生成映射表(适合高频调用场景)

如果页面中多处需要做key到显示文本的转换,建议提前将选项数组转换为键值对映射表,一次转换后直接按键取值,不需要每次遍历数组:

// 和fundsTypes定义在同一作用域,初始化时一次生成即可
const fundTypeTextMap = fundsTypes.reduce((result, option) => {
  result[option.key] = option.text;
  return result;
}, {} as Record<string | number, string>);

// 直接取值,无需遍历
const displayText = fundTypeTextMap["PersonalCheque"];
// 返回结果:"Personal Cheque"

补充说明:如果下拉选项是接口返回的动态数据,需要等选项数据加载完成后,再执行查找或生成映射表的逻辑,否则会出现匹配不到值的问题。


内容的提问来源于stack exchange,提问作者Devendra Pandey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 03:06:11