React Bootstrap logoReact Bootstrap

Dropdown

基础导航

基于 Bootstrap 5 的下拉菜单组件,Dropdown 系列(Dropdown、DropdownToggle、DropdownMenu、DropdownItem 等)用于在按钮旁弹出上下文菜单,支持分割按钮、尺寸调整、深色菜单、六个展开方向、菜单项激活/禁用状态、标题/分割线/纯文本、表单菜单、菜单对齐、自动关闭策略、受控模式与键盘导航

基础用法

Dropdown 渲染 `div.dropdown`,DropdownToggle 渲染 `button.btn.dropdown-toggle`, DropdownMenu 渲染 `div.dropdown-menu`,展开时自动添加 `show` 类并设置 `aria-expanded`

分割按钮

SplitButton 渲染 `div.btn-group`,左侧主按钮触发 action,右侧箭头按钮( `dropdown-toggle-split`)展开菜单

尺寸

size 分别渲染 `btn-lg`/`btn-sm` 类,与 Bootstrap 的按钮尺寸规则一致

深色菜单

为 DropdownMenu 设置 variant="dark"(或使用 DropdownButton 的 menuVariant)渲染 `dropdown-menu-dark` 深色菜单

展开方向

drop 分别渲染 `dropup`、`dropup dropup-center`、`dropdown dropdown-center`、 `dropend`、`dropstart` 类,箭头方向与菜单定位自动匹配

菜单项

active 渲染 `active` 类与 `aria-current`;disabled 渲染 `disabled` 类、 `aria-disabled` 并移除 tabIndex;设置了 href 的菜单项渲染为 `a` 标签

选择回调

当前选择:未选择。点击菜单项后 eventKey 通过 onSelect 回调传出,默认自动关闭菜单

菜单内容

DropdownHeader 渲染 `h6.dropdown-header`,DropdownDivider 渲染 `hr.dropdown-divider`,DropdownItemText 渲染 `span.dropdown-item-text`

表单菜单

通过 as="form" 将菜单渲染为表单,表单控件不是菜单项,交互不会触发自动关闭

菜单对齐

align="end" 渲染 `dropdown-menu-end` 类;对象形式按断点生成 `dropdown-menu-lg-end` 等响应式类

自动关闭策略

autoClose 控制菜单的关闭时机:true 为默认行为,inside/outside 分别只在菜单内/外触发, false 只能通过触发按钮或 Esc 键关闭

受控模式

当前展开状态:false。传入 show 后 Dropdown 变为受控组件,展开状态完全由 onToggle 驱动的外部 state 决定