Components
@shadcn/react
@shadcn/helpers
Utilities
Right click hereLong press here
"use client"
import { Pressable } from "react-aria-components"安装#
pnpm dlx shadcn@latest add context-menu
用法#
import { Pressable } from "react-aria-components"
import {
ContextMenu,
ContextMenuItem,
ContextMenuTrigger,
} from "@/components/ui/context-menu"<ContextMenuTrigger>
<Pressable>
<div role="button">在此处右键点击</div>
</Pressable>
<ContextMenu>
<ContextMenuItem>个人资料</ContextMenuItem>
<ContextMenuItem>账单</ContextMenuItem>
<ContextMenuItem>团队</ContextMenuItem>
<ContextMenuItem>订阅</ContextMenuItem>
</ContextMenu>
</ContextMenuTrigger>组成#
使用以下组合构建一个 ContextMenu:
ContextMenuTrigger
├── Pressable
└── ContextMenuContent
├── ContextMenuGroup
│ ├── ContextMenuLabel
│ ├── ContextMenuItem
│ └── ContextMenuItem
├── ContextMenuSeparator
├── ContextMenuGroup
│ ├── ContextMenuLabel
│ ├── ContextMenuItem
│ └── ContextMenuItem
└── ContextMenuSub
├── ContextMenuSubTrigger
└── ContextMenuSubContent
└── ContextMenuGroup
├── ContextMenuItem
└── ContextMenuItem基础#
一个包含几个操作的简单上下文菜单。
Right click hereLong press here
"use client"
import { Pressable } from "react-aria-components"子菜单#
使用 ContextMenuSub 嵌套次级操作。
Right click hereLong press here
"use client"
import { Pressable } from "react-aria-components"快捷键#
添加 ContextMenuShortcut 以显示键盘提示。
Right click hereLong press here
"use client"
import { Pressable } from "react-aria-components"分组#
将相关操作分组,并使用分隔线将它们分开。
Right click hereLong press here
"use client"
import { Pressable } from "react-aria-components"图标#
将图标与标签结合,便于快速浏览。
Right click hereLong press here
"use client"
import {复选框#
对于切换项,请使用 selectionMode="multiple"。
Right click hereLong press here
"use client"
import { useState } from "react"单选框#
使用 selectionMode="single" 实现互斥选择。
Right click hereLong press here
"use client"
import * as React from "react"破坏性#
使用 variant="destructive" 将菜单项设置为破坏性样式。
Right click hereLong press here
"use client"
import { ArchiveIcon, PencilIcon, ShareIcon, TrashIcon } from "lucide-react"放置位置#
使用 placement 属性控制子菜单的放置位置。
Right click (top)Long press (top)
Right click (right)Long press (right)
Right click (bottom)Long press (bottom)
Right click (left)Long press (left)
"use client"
import { Pressable } from "react-aria-components"RTL#
要在 shadcn/ui 中启用 RTL 支持,请参阅 RTL 配置指南。
انقر بزر الماوس الأيمن هنااضغط مطولاً هنا
"use client"
import * as React from "react"使用 placement="end" 将菜单放置在触发器逻辑上的末端。
<ContextMenuTrigger>
<Pressable>
<div role="button">在此处右键点击</div>
</Pressable>
<ContextMenu placement="end">
<ContextMenuItem>个人资料</ContextMenuItem>
<ContextMenuItem>账单</ContextMenuItem>
<ContextMenuItem>团队</ContextMenuItem>
<ContextMenuItem>订阅</ContextMenuItem>
</ContextMenu>
</ContextMenuTrigger>API 参考#
有关更多信息,请参阅 React Aria 文档。