此组件已弃用。请考虑改用 Navigator。此功能仍处于实验阶段。“实验性”意味着这是早期实现,可能会发生剧烈且破坏性的变更。

渲染带有可选分组和层级的导航列表。

用法

import {
    __experimentalNavigation as Navigation,
    __experimentalNavigationGroup as NavigationGroup,
    __experimentalNavigationItem as NavigationItem,
    __experimentalNavigationMenu as NavigationMenu,
} from '@wordpress/components';

const MyNavigation = () => (
    <Navigation>
        <NavigationMenu title="Home">
            <NavigationGroup title="Group 1">
                <NavigationItem item="item-1" title="Item 1" />
                <NavigationItem item="item-2" title="Item 2" />
            </NavigationGroup>
            <NavigationGroup title="Group 2">
                <NavigationItem
                    item="item-3"
                    navigateToMenu="category"
                    title="Category"
                />
            </NavigationGroup>
        </NavigationMenu>

        <NavigationMenu
            backButtonLabel="Home"
            menu="category"
            parentMenu="root"
            title="Category"
        >
            <NavigationItem badge="1" item="child-1" title="Child 1" />
            <NavigationItem item="child-2" title="Child 2" />
        </NavigationMenu>
    </Navigation>
);

Navigation 属性

Navigation 支持以下属性。

activeItem

  • 类型: string
  • 是否必需: 否

当前选中项的标识符(slug)。

activeMenu

  • 类型: string
  • 是否必需: 否
  • 默认值: “root”

当前选中菜单的标识符(slug)。

className

  • 类型: string
  • 是否必需: 否

Navigation 组件的可选 CSS 类名。

onActivateMenu

  • 类型: function
  • 是否必需: 否

同步外部状态与 Navigation 内部状态的活跃菜单。

Navigation Menu 属性

NavigationMenu 支持以下属性。

backButtonLabel

  • 类型: string
  • 是否必需: 否
  • 默认值: 父级菜单标题或“Back”

在嵌套菜单中使用的返回按钮标签。如果未提供,该标签将根据父级菜单的标题推断得出。
如果由于某些原因无法获取父级菜单的标题,则默认显示为“Back”。

onBackButtonClick

  • 类型: function
  • 是否必需: 否

处理点击返回按钮的回调函数。如果提供了此属性,则将显示返回按钮。

className

  • 类型: string
  • 是否必需: 否

NavigationMenu 组件的可选 CSS 类名。

hasSearch

  • 类型: boolean
  • 是否必需: 否

启用菜单标题上的搜索功能。

menu

  • 类型: string
  • 是否必需: 否
  • 默认值: “root”

菜单的唯一标识符。根菜单可以省略此项,它将默认为“root”;所有其他菜单都需要指定它。

onSearch

  • 类型: ( searchString: string ) => void;
  • 是否必需: 否

当 hasSearch 激活时,此函数处理搜索输入的 onChange 事件,使其从外部受控。同时需要设置 search 属性。

isSearchDebouncing

  • 类型: boolean
  • 是否必需: 否

指示搜索是否处于防抖状态。如果为 true,则省略“No results found.”文本。用于防止在防抖搜索之间显示“No results found.”文本。

parentMenu

  • 类型: string
  • 是否必需: 否

父级菜单标识符(slug);用于嵌套菜单以指示其父级菜单。

search

  • 类型: string
  • 是否必需: 否

当 hasSearch 激活且提供了 onSearch 时,此属性控制搜索输入的值。当提供 onSearch 属性时必需。

isEmpty

  • 类型: boolean
  • 是否必需: 否

指示菜单是否为空。与 Navigation Item 的 hideIfTargetMenuEmpty 属性一起使用。

title

  • 类型: string
  • 是否必需: 否

菜单标题。这也是菜单搜索功能所使用的字段。

titleAction

  • 类型: React.ReactNode
  • 是否必需: 否

使用此属性在菜单标题中渲染额外的操作。

Navigation Group 属性

NavigationGroup 支持以下属性。

className

  • 类型: string
  • 是否必需: 否

NavigationGroup 组件的可选 CSS 类名。

title

  • 类型: string
  • 是否必需: 否

分组标题。

Navigation Item 属性

NavigationItem 支持以下属性。

badge

  • 类型: string|Number
  • 是否必需: 否

项目徽章内容。

className

  • 类型: string
  • 是否必需: 否

NavigationItem 组件的可选 CSS 类名。

href

  • 类型: string
  • 是否必需: 否

如果提供,将渲染 a 标签而不是 button。

icon

  • 类型: React.JSX.Element
  • 是否必需: 否

如果未传递 children,此属性允许为菜单项指定自定义图标。

item

  • 类型: string
  • 是否必需: 否

项目的唯一标识符。

navigateToMenu

  • 类型: string
  • 是否必需: 否

子菜单标识符(slug)。如果提供,点击该项将导航至目标菜单。

hideIfTargetMenuEmpty

  • 类型: boolean
  • 是否必需: 否

指示如果在 isEmpty 属性中标记了 navigateToMenu 中指定的菜单为空,则应隐藏该项目。与 Navigation Menu 的 isEmpty 属性一起使用。

onClick

  • 类型: React.MouseEventHandler
  • 是否必需: 否

处理点击菜单项的回调函数。

isText

  • 类型: boolean
  • 是否必需: 否
  • 默认值: false

如果设置为 true,则菜单项仅作为纯文本项,而不是按钮。

title

  • 类型: string
  • 是否必需: 否

项目标题。