2016-03-31 09:40:55 +08:00
|
|
|
---
|
2017-02-09 15:09:32 +08:00
|
|
|
order: 5
|
2016-07-04 10:48:21 +08:00
|
|
|
title:
|
|
|
|
zh-CN: 带下拉框的按钮
|
|
|
|
en-US: Button with dropdown menu
|
2016-03-31 09:40:55 +08:00
|
|
|
---
|
2015-12-02 15:18:15 +08:00
|
|
|
|
2016-07-04 10:48:21 +08:00
|
|
|
## zh-CN
|
|
|
|
|
2019-05-07 14:57:32 +08:00
|
|
|
左边是按钮,右边是额外的相关功能菜单。可设置 `icon` 属性来修改右边的图标。
|
2015-12-02 15:18:15 +08:00
|
|
|
|
2016-07-04 10:48:21 +08:00
|
|
|
## en-US
|
|
|
|
|
2019-05-07 14:57:32 +08:00
|
|
|
A button is on the left, and a related functional menu is on the right. You can set the icon property to modify the icon of right.
|
2016-07-04 10:48:21 +08:00
|
|
|
|
2022-05-19 09:46:26 +08:00
|
|
|
```tsx
|
2019-11-28 12:34:33 +08:00
|
|
|
import { DownOutlined, UserOutlined } from '@ant-design/icons';
|
2022-05-19 09:46:26 +08:00
|
|
|
import type { MenuProps } from 'antd';
|
2022-05-23 14:37:16 +08:00
|
|
|
import { Button, Dropdown, Menu, message, Space, Tooltip } from 'antd';
|
|
|
|
import React from 'react';
|
2015-12-02 15:18:15 +08:00
|
|
|
|
2022-05-19 09:46:26 +08:00
|
|
|
const handleButtonClick = (e: React.MouseEvent<HTMLButtonElement>) => {
|
2016-09-29 11:51:24 +08:00
|
|
|
message.info('Click on left button.');
|
2016-04-18 17:23:22 +08:00
|
|
|
console.log('click left button', e);
|
2022-05-19 09:46:26 +08:00
|
|
|
};
|
2016-02-29 18:02:05 +08:00
|
|
|
|
2022-05-19 09:46:26 +08:00
|
|
|
const handleMenuClick: MenuProps['onClick'] = e => {
|
2016-09-29 11:51:24 +08:00
|
|
|
message.info('Click on menu item.');
|
2016-02-29 18:02:05 +08:00
|
|
|
console.log('click', e);
|
2022-05-19 09:46:26 +08:00
|
|
|
};
|
2016-02-29 18:02:05 +08:00
|
|
|
|
2016-01-07 16:29:12 +08:00
|
|
|
const menu = (
|
2022-03-18 15:20:35 +08:00
|
|
|
<Menu
|
|
|
|
onClick={handleMenuClick}
|
|
|
|
items={[
|
|
|
|
{
|
|
|
|
label: '1st menu item',
|
|
|
|
key: '1',
|
|
|
|
icon: <UserOutlined />,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '2nd menu item',
|
|
|
|
key: '2',
|
|
|
|
icon: <UserOutlined />,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '3rd menu item',
|
|
|
|
key: '3',
|
|
|
|
icon: <UserOutlined />,
|
|
|
|
},
|
|
|
|
]}
|
|
|
|
/>
|
2016-01-07 16:29:12 +08:00
|
|
|
);
|
2015-12-02 15:18:15 +08:00
|
|
|
|
2022-05-19 09:46:26 +08:00
|
|
|
const App: React.FC = () => (
|
2020-12-07 09:21:04 +08:00
|
|
|
<Space wrap>
|
2017-04-05 11:17:07 +08:00
|
|
|
<Dropdown.Button onClick={handleButtonClick} overlay={menu}>
|
2016-09-29 11:51:24 +08:00
|
|
|
Dropdown
|
2016-09-13 18:27:39 +08:00
|
|
|
</Dropdown.Button>
|
2022-01-13 13:34:34 +08:00
|
|
|
<Dropdown.Button overlay={menu} placement="bottom" icon={<UserOutlined />}>
|
2019-05-06 12:04:39 +08:00
|
|
|
Dropdown
|
|
|
|
</Dropdown.Button>
|
2019-05-07 14:57:32 +08:00
|
|
|
<Dropdown.Button onClick={handleButtonClick} overlay={menu} disabled>
|
2016-09-29 11:51:24 +08:00
|
|
|
Dropdown
|
2016-09-19 11:42:03 +08:00
|
|
|
</Dropdown.Button>
|
2020-01-13 12:15:20 +08:00
|
|
|
<Dropdown.Button
|
|
|
|
overlay={menu}
|
|
|
|
buttonsRender={([leftButton, rightButton]) => [
|
|
|
|
<Tooltip title="tooltip" key="leftButton">
|
|
|
|
{leftButton}
|
|
|
|
</Tooltip>,
|
2022-05-19 09:46:26 +08:00
|
|
|
React.cloneElement(rightButton as React.ReactElement<any, string>, { loading: true }),
|
2020-01-13 12:15:20 +08:00
|
|
|
]}
|
|
|
|
>
|
|
|
|
With Tooltip
|
|
|
|
</Dropdown.Button>
|
2016-09-13 18:27:39 +08:00
|
|
|
<Dropdown overlay={menu}>
|
2019-05-06 12:04:39 +08:00
|
|
|
<Button>
|
2022-04-22 15:33:01 +08:00
|
|
|
<Space>
|
|
|
|
Button
|
|
|
|
<DownOutlined />
|
|
|
|
</Space>
|
2016-09-13 18:27:39 +08:00
|
|
|
</Button>
|
|
|
|
</Dropdown>
|
2022-04-03 23:27:45 +08:00
|
|
|
</Space>
|
2018-11-28 15:00:03 +08:00
|
|
|
);
|
2022-05-19 09:46:26 +08:00
|
|
|
|
|
|
|
export default App;
|
2019-05-07 14:57:32 +08:00
|
|
|
```
|