ant-design/components/dropdown/index.zh-CN.md
2023-09-01 23:39:56 +08:00

4.6 KiB
Raw Blame History

category subtitle group title cover coverDark demo
Components 下拉菜单 导航 Dropdown https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*mBBcQ6goljkAAAAAAAAAAAAADrJ8AQ/original https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*5qm4S4Zgh2QAAAAAAAAAAAAADrJ8AQ/original
cols
2

向下弹出的列表。

何时使用

当页面上的操作命令过多时,用此组件可以收纳操作元素。点击或移入触点,会出现一个下拉菜单。可在列表中进行选择,并执行相应的命令。

  • 用于收罗一组命令操作。
  • Select 用于选择,而 Dropdown 是命令集合。

代码演示

基本 弹出位置 箭头 其他元素 箭头指向 触发方式 触发事件 带下拉框的按钮 扩展菜单 多级菜单 菜单隐藏方式 右键菜单 加载中状态 菜单可选选择 Menu 完整样式 _InternalPanelDoNotUseOrYouWillBeFired Icon debug

API

通用属性参考:通用属性

Dropdown

参数 说明 类型 默认值 版本
arrow 下拉框箭头是否显示 boolean | { pointAtCenter: boolean } false
autoAdjustOverflow 下拉框被遮挡时自动调整位置 boolean true 5.2.0
autoFocus 打开后自动聚焦下拉框 boolean false 4.21.0
disabled 菜单是否禁用 boolean -
destroyPopupOnHide 关闭后是否销毁 Dropdown boolean false
dropdownRender 自定义下拉框内容 (menus: ReactNode) => ReactNode - 4.24.0
getPopupContainer 菜单渲染父节点。默认渲染到 body 上,如果你遇到菜单滚动定位问题,试试修改为滚动的区域,并相对其定位。示例 (triggerNode: HTMLElement) => HTMLElement () => document.body
menu 菜单配置项 MenuProps - 4.24.0
overlayClassName 下拉根元素的类名称 string -
overlayStyle 下拉根元素的样式 CSSProperties -
placement 菜单弹出位置:bottom bottomLeft bottomRight top topLeft topRight string bottomLeft
trigger 触发下拉的行为,移动端不支持 hover Array<click|hover|contextMenu> [hover]
open 菜单是否显示,小于 4.23.0 使用 visible为什么? boolean - 4.23.0
onOpenChange 菜单显示状态改变时调用,点击菜单按钮导致的消失不会触发。小于 4.23.0 使用 onVisibleChange为什么? (open: boolean) => void - 4.23.0

Dropdown.Button

属性与 Dropdown 的相同。还包含以下属性:

参数 说明 类型 默认值 版本
buttonsRender 自定义左右两个按钮 (buttons: ReactNode[]) => ReactNode[] -
loading 设置按钮载入状态 boolean | { delay: number } false
danger 设置危险按钮 boolean - 4.23.0
icon 右侧的 icon ReactNode -
size 按钮大小,和 Button 一致 string default
type 按钮类型,和 Button 一致 string default
onClick 点击左侧按钮的回调,和 Button 一致 (event) => void -

注意

请确保 Dropdown 的子元素能接受 onMouseEnteronMouseLeaveonFocusonClick 事件。

主题变量Design Token

FAQ

Dropdown 在水平方向超出屏幕时会被挤压该怎么办?

你可以通过 width: max-content 来解决这个问题,参考 #43025