mirror of
https://github.com/ant-design/ant-design.git
synced 2024-12-16 09:39:10 +08:00
92 lines
1.9 KiB
Markdown
92 lines
1.9 KiB
Markdown
---
|
|
order: 8
|
|
title:
|
|
zh-CN: 扩展菜单
|
|
en-US: Custom dropdown
|
|
---
|
|
|
|
## zh-CN
|
|
|
|
使用 `dropdownRender` 对下拉菜单进行自由扩展。如果你并不需要 Menu 内容,请直接使用 Popover 组件。
|
|
|
|
## en-US
|
|
|
|
Customize the dropdown menu via `dropdownRender`. If you don't need the Menu content, use the Popover component directly.
|
|
|
|
```tsx
|
|
import { DownOutlined } from '@ant-design/icons';
|
|
import type { MenuProps } from 'antd';
|
|
import { Dropdown, Space, Divider, Button } from 'antd';
|
|
import React from 'react';
|
|
|
|
const items: MenuProps['items'] = [
|
|
{
|
|
key: '1',
|
|
label: (
|
|
<a target="_blank" rel="noopener noreferrer" href="https://www.antgroup.com">
|
|
1st menu item
|
|
</a>
|
|
),
|
|
},
|
|
{
|
|
key: '2',
|
|
label: (
|
|
<a target="_blank" rel="noopener noreferrer" href="https://www.aliyun.com">
|
|
2nd menu item (disabled)
|
|
</a>
|
|
),
|
|
disabled: true,
|
|
},
|
|
{
|
|
key: '3',
|
|
label: (
|
|
<a target="_blank" rel="noopener noreferrer" href="https://www.luohanacademy.com">
|
|
3rd menu item (disabled)
|
|
</a>
|
|
),
|
|
disabled: true,
|
|
},
|
|
];
|
|
|
|
const App: React.FC = () => (
|
|
<Dropdown
|
|
menu={{ items }}
|
|
dropdownRender={menu => (
|
|
<div className="dropdown-content">
|
|
{menu}
|
|
<Divider style={{ margin: 0 }} />
|
|
<Space style={{ padding: 8 }}>
|
|
<Button type="primary">Click me!</Button>
|
|
</Space>
|
|
</div>
|
|
)}
|
|
>
|
|
<a onClick={e => e.preventDefault()}>
|
|
<Space>
|
|
Hover me
|
|
<DownOutlined />
|
|
</Space>
|
|
</a>
|
|
</Dropdown>
|
|
);
|
|
|
|
export default App;
|
|
```
|
|
|
|
```css
|
|
.dropdown-content {
|
|
background: #fff;
|
|
box-shadow: 0 3px 6px -4px rgb(0 0 0 / 12%), 0 6px 16px 0 rgb(0 0 0 / 8%),
|
|
0 9px 28px 8px rgb(0 0 0 / 5%);
|
|
}
|
|
.dropdown-content .ant-dropdown-menu {
|
|
box-shadow: none;
|
|
}
|
|
```
|
|
|
|
<style>
|
|
[data-theme="dark"] .head-example {
|
|
background: #1f1f1f;
|
|
}
|
|
</style>
|