Dropdown 下拉菜单

向下弹出的列表。

何时使用#

当页面上的操作命令过多时,用此组件可以收纳操作元素。点击或移入触点,会出现一个下拉菜单。可在列表中进行选择,并执行相应的命令。

API#

属性如下

成员 说明 类型 默认值
trigger 触发下拉的行为 "click" or "hover" hover
overlay 菜单节点 React.Element
onClick 点击菜单后的回调 function({key,keyPath,item,domEvent}) {}

菜单可由 antd.Menu 取得,可设置 onSelect 回调,菜单还包括菜单项 antd.Menu.Item,分割线 antd.Menu.Divider

注意: Menu.Item 必须设置唯一的 key 属性。

代码演示

import { Menu, Dropdown, Button, Icon } from 'antd';

const menu = <Menu>
  <Menu.Item>
    <a target="_blank" href="http://www.alipay.com/">第一个菜单项</a>
  </Menu.Item>
  <Menu.Item>
    <a target="_blank" href="http://www.taobao.com/">第二个菜单项</a>
  </Menu.Item>
  <Menu.Item>
    <a target="_blank" href="http://www.tmall.com/">第三个菜单项</a>
  </Menu.Item>
</Menu>;

ReactDOM.render(
  <Dropdown overlay={menu}>
    <Button>
      某按钮 <Icon type="down" />
    </Button>
  </Dropdown>
, document.getElementById('components-dropdown-demo-basic'));

最简单的下拉菜单。

import { Menu, Dropdown, Button, Icon } from 'antd';

const menu = <Menu>
  <Menu.Item key="0">
    <a href="http://www.alipay.com/">第一个菜单项</a>
  </Menu.Item>
  <Menu.Item key="1">
    <a href="http://www.taobao.com/">第二个菜单项</a>
  </Menu.Item>
  <Menu.Divider/>
  <Menu.Item key="3">第三个菜单项</Menu.Item>
</Menu>;

ReactDOM.render(<div>
  <Dropdown overlay={menu} trigger={['click']}>
    <Button type="primary">
      点击触发 <Icon type="down" />
    </Button>
  </Dropdown>
  <Dropdown overlay={menu}>
    <Button>
      鼠标移入 <Icon type="down" />
    </Button>
  </Dropdown>
</div>, document.getElementById('components-dropdown-demo-trigger'));

点击或鼠标移入触发。

import { Menu, Dropdown, Button, Icon } from 'antd';

const menu = <Menu>
  <Menu.Item key="0">
    <a target="_blank" href="http://www.alipay.com/">第一个菜单项</a>
  </Menu.Item>
  <Menu.Item key="1">
    <a target="_blank" href="http://www.taobao.com/">第二个菜单项</a>
  </Menu.Item>
  <Menu.Divider/>
  <Menu.Item key="3" disabled>第三个菜单项(不可用)</Menu.Item>
</Menu>;

ReactDOM.render(
  <Dropdown overlay={menu}>
    <Button>
      鼠标移入 <Icon type="down" />
    </Button>
  </Dropdown>
, document.getElementById('components-dropdown-demo-item'));

分割线和不可用菜单项。

import { Menu, Dropdown, Button, Icon } from 'antd';
const onClick = function({key}) {
  console.log('点击了菜单' + key);
};

const menu = <Menu onClick={onClick}>
  <Menu.Item key="1">第一个菜单项</Menu.Item>
  <Menu.Item key="2">第二个菜单项</Menu.Item>
  <Menu.Item key="3">第三个菜单项</Menu.Item>
</Menu>;

ReactDOM.render(
  <Dropdown overlay={menu}>
    <Button>
      鼠标移入,点击菜单 <Icon type="down" />
    </Button>
  </Dropdown>
, document.getElementById('components-dropdown-demo-event'));

点击菜单项后会触发事件,用户可以通过相应的菜单项 key 进行不同的操作。