ant-design/components/dropdown/demo/dropdown-button.md
MadCcc e5451a95cb
feat: dropdown support arrow pointing at center (#33658)
* feat: add pointAtCenter prop for dropdown

* feat: dropdown support arrow pointing at center

* chore: code clean

* chore: use getPlacements in tooltip

* feat: dropdown support 'top' and 'bottom'

* chore: update snapshot

* chore: move placements to util folder

* feat: make 'topCenter' and 'bottomCenter' in Dropdown deprecated

* test: update snapshot

* test: add test for topCenter and bottomCenter
2022-01-13 13:34:34 +08:00

75 lines
1.8 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.
```jsx
import { Menu, Dropdown, Button, message, Space, Tooltip } from 'antd';
import { DownOutlined, UserOutlined } from '@ant-design/icons';
function handleButtonClick(e) {
message.info('Click on left button.');
console.log('click left button', e);
}
function handleMenuClick(e) {
message.info('Click on menu item.');
console.log('click', e);
}
const menu = (
<Menu onClick={handleMenuClick}>
<Menu.Item key="1" icon={<UserOutlined />}>
1st menu item
</Menu.Item>
<Menu.Item key="2" icon={<UserOutlined />}>
2nd menu item
</Menu.Item>
<Menu.Item key="3" icon={<UserOutlined />}>
3rd menu item
</Menu.Item>
</Menu>
);
ReactDOM.render(
<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, { loading: true }),
]}
>
With Tooltip
</Dropdown.Button>
<Dropdown overlay={menu}>
<Button>
Button <DownOutlined />
</Button>
</Dropdown>
</Space>,
mountNode,
);
```