跳到内容
+

菜单

下拉菜单组件为最终用户在临时表面上提供选项列表。

useDropdown API

导入

import { useDropdown } from '@mui/base/useDropdown';
// or
import { useDropdown } from '@mui/base';

了解更多关于差异的信息,请阅读这篇关于最小化捆绑包大小的指南

参数

名称类型默认值描述
componentNamestring'useDropdown'

使用 useDropdown 的组件名称。用于调试目的。

defaultOpenboolean-

如果为 true,则下拉菜单初始为打开状态。

onOpenChange(event: React.MouseEvent | React.KeyboardEvent | React.FocusEvent | null, open: boolean) => void-

当组件请求打开或关闭时触发的回调。

openboolean-

允许控制下拉菜单是否打开。这是 defaultOpen 的受控 counterpart。

返回值

名称类型描述
contextValueDropdownContextValue

要传递到 DropdownContext 提供程序中的值。

openboolean

如果为 true,则下拉菜单为打开状态。


useMenu API

导入

import { useMenu } from '@mui/base/useMenu';
// or
import { useMenu } from '@mui/base';

了解更多关于差异的信息,请阅读这篇关于最小化捆绑包大小的指南

参数

名称类型默认值描述
autoFocusbooleantrue

如果为 true(默认),将聚焦高亮的项目。如果您将此属性设置为 false,则焦点不会移动到 Menu 组件内部。这具有严重的辅助功能影响,只有在您以其他方式管理焦点时才应考虑。

componentNamestring'useMenu'

使用 useMenu 的组件名称。用于调试目的。

disabledItemsFocusablebooleantrue

如果为 true,则可以高亮禁用项目。

disableListWrapbooleanfalse

如果为 true,则在使用箭头键时,高亮不会在列表中循环。

idstring-

菜单的 ID。如果未提供,则将生成。

listboxRefReact.Ref<Element>-

菜单列表框节点的 ref。

onItemsChange(items: string[]) => void-

当菜单项更改时触发的回调。

返回值

名称类型描述
contextValueMenuProviderValue

要传递到 MenuProvider 中的值。

dispatch(action: ListAction<string>) => void

菜单组件的操作分发器。允许以编程方式控制菜单。

getListboxProps<ExternalProps extends Record<string, unknown> = {}>(externalProps?: ExternalProps) => UseMenuListboxSlotProps

列表框插槽属性的解析器。

highlightedValuestring | null

菜单列表框中高亮显示的选项。

listboxRefReact.RefCallback<Element> | null

菜单列表框节点的 ref。

menuItemsMap<string, MenuItemMetadata>

菜单列表框中的项目。

openboolean

如果为 true,则菜单为打开状态。

triggerElementHTMLElement | null

触发菜单可见性的元素。


useMenuButton API

导入

import { useMenuButton } from '@mui/base/useMenuButton';
// or
import { useMenuButton } from '@mui/base';

了解更多关于差异的信息,请阅读这篇关于最小化捆绑包大小的指南

参数

名称类型默认值描述
disabledbooleanfalse

如果为 true,则组件被禁用。

focusableWhenDisabledbooleanfalse

如果为 true,则允许禁用的按钮接收焦点。

rootRefReact.Ref<HTMLElement>-

根元素的 ref。

返回值

名称类型描述
activeboolean

如果为 true,则组件处于活动状态(按下)。

getRootProps<ExternalProps extends Record<string, unknown> = {}>(externalProps?: ExternalProps) => UseMenuButtonRootSlotProps<ExternalProps>

根插槽属性的解析器。

openboolean
rootRefReact.RefCallback<Element> | null

根元素的 ref。


useMenuItem API

导入

import { useMenuItem } from '@mui/base/useMenuItem';
// or
import { useMenuItem } from '@mui/base';

了解更多关于差异的信息,请阅读这篇关于最小化捆绑包大小的指南

参数

名称类型默认值描述
rootRef*React.Ref<Element>-
disabledboolean-
disableFocusOnHoverbooleanfalse

如果为 true,则当鼠标移动到菜单项上时,菜单项不会接收焦点。

idstring-
labelstring-
onClickReact.MouseEventHandler<any>-

返回值

名称类型描述
disabledboolean

如果为 true,则组件被禁用。

focusVisibleboolean

如果为 true,则组件正在使用键盘聚焦。

getRootProps<ExternalProps extends Record<string, unknown> = {}>(externalProps?: ExternalProps) => UseMenuItemRootSlotProps<ExternalProps>

根插槽属性的解析器。

highlightedboolean

如果为 true,则组件正在被高亮显示。

indexnumber

菜单中项目的从 0 开始的索引。

rootRefReact.RefCallback<Element> | null

组件根 DOM 元素的 ref。

totalItemCountnumber

菜单中项目的总数。


useMenuItemContextStabilizer API

导入

import { useMenuItemContextStabilizer } from '@mui/base/useMenuItem';
// or
import { useMenuItemContextStabilizer } from '@mui/base';

了解更多关于差异的信息,请阅读这篇关于最小化捆绑包大小的指南

此 Hook 不接受任何输入参数。

返回值

名称类型描述