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

如何在Fluent UI + React的Dropdown组件中添加自定义data属性

实现方案

完全可以实现,根据你使用的Fluent UI版本不同,对应方案如下:

Fluent UI v8 版本

v8的Dropdown选项需要通过自定义渲染透传自定义属性:

  • 首先在IDropdownOption的data字段中存入你要附加的自定义数据
  • 通过onRenderOption方法自定义渲染选项节点,将data字段中的值映射为对应data-*属性挂载到DOM上

示例代码:

import { Dropdown, IDropdownOption } from '@fluentui/react';

const dropdownOptions: IDropdownOption[] = [
  {
    key: '7',
    text: 'Data Quality',
    data: {
      passign: 'true',
      minpt: '3',
      maxpt: '6'
    }
  }
];

const customRenderOption = (option?: IDropdownOption) => {
  if (!option) return null;
  return (
    <div
      data-passign={option.data.passign}
      data-minpt={option.data.minpt}
      data-maxpt={option.data.maxpt}
    >
      {option.text}
    </div>
  )
}

// 组件调用
<Dropdown 
  options={dropdownOptions}
  onRenderOption={customRenderOption}
/>

Fluent UI v9 版本

v9的API做了简化,Option组件默认支持透传所有原生HTML属性,直接像写原生HTML一样附加data-*属性即可:

import { Dropdown, Option } from '@fluentui/react-components';

// 组件调用
<Dropdown>
  <Option
    value="7"
    data-passign="true"
    data-minpt="3"
    data-maxpt="6"
  >
    Data Quality
  </Option>
</Dropdown>

如果你需要给Dropdown组件的根DOM节点附加自定义data属性,不管是v8还是v9版本,都可以直接写在Dropdown标签上,属性会自动透传到根节点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 15:15:03