mirror of
https://github.com/ant-design/ant-design.git
synced 2024-12-04 00:49:39 +08:00
7fd093bd0a
* docs: add general components TS demo * docs: add layout components TS demo * docs: add navigation components TS demo * docs: add data entry components TS demo * chore(deps): add types for qs * docs: add data display TS demo * docs: add feedback components TS demo * docs: add other components TS demo * chore(deps): add types * docs: unified demo code style * docs: fix lint error * docs: add demo TS type * docs: fix demo TS type * test: update snapshot * docs: fix TS demo * feat: update Rate character type * docs: fix lint error * feat: update Rate character type * feat: update Rate character type
90 lines
2.1 KiB
Markdown
90 lines
2.1 KiB
Markdown
---
|
|
order: 5
|
|
title:
|
|
zh-CN: 带下拉框的按钮
|
|
en-US: Button with dropdown menu
|
|
---
|
|
|
|
## zh-CN
|
|
|
|
左边是按钮,右边是额外的相关功能菜单。可设置 `icon` 属性来修改右边的图标。
|
|
|
|
## en-US
|
|
|
|
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.
|
|
|
|
```tsx
|
|
import React from 'react';
|
|
import { Menu, Dropdown, Button, message, Space, Tooltip } from 'antd';
|
|
import { DownOutlined, UserOutlined } from '@ant-design/icons';
|
|
import type { MenuProps } from 'antd';
|
|
|
|
const handleButtonClick = (e: React.MouseEvent<HTMLButtonElement>) => {
|
|
message.info('Click on left button.');
|
|
console.log('click left button', e);
|
|
};
|
|
|
|
const handleMenuClick: MenuProps['onClick'] = e => {
|
|
message.info('Click on menu item.');
|
|
console.log('click', e);
|
|
};
|
|
|
|
const menu = (
|
|
<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 />,
|
|
},
|
|
]}
|
|
/>
|
|
);
|
|
|
|
const App: React.FC = () => (
|
|
<Space wrap>
|
|
<Dropdown.Button onClick={handleButtonClick} overlay={menu}>
|
|
Dropdown
|
|
</Dropdown.Button>
|
|
<Dropdown.Button overlay={menu} placement="bottom" icon={<UserOutlined />}>
|
|
Dropdown
|
|
</Dropdown.Button>
|
|
<Dropdown.Button onClick={handleButtonClick} overlay={menu} disabled>
|
|
Dropdown
|
|
</Dropdown.Button>
|
|
<Dropdown.Button
|
|
overlay={menu}
|
|
buttonsRender={([leftButton, rightButton]) => [
|
|
<Tooltip title="tooltip" key="leftButton">
|
|
{leftButton}
|
|
</Tooltip>,
|
|
React.cloneElement(rightButton as React.ReactElement<any, string>, { loading: true }),
|
|
]}
|
|
>
|
|
With Tooltip
|
|
</Dropdown.Button>
|
|
<Dropdown overlay={menu}>
|
|
<Button>
|
|
<Space>
|
|
Button
|
|
<DownOutlined />
|
|
</Space>
|
|
</Button>
|
|
</Dropdown>
|
|
</Space>
|
|
);
|
|
|
|
export default App;
|
|
```
|