Dropdown 下拉菜单

定义/Definition

下拉菜单是由其他控件触发上的,可以通过列表项进行选择、操作。

规则 / Rule

  • 点击背景的任一位置时,可以隐藏菜单

  • 下拉菜单项可以是选择也可以是行为(筛选、跳转…)

代码演示

Dropdown

  1. // 此处用作demo展示,不要用在生产环境
  2. this.customNavFlag = true;
  3. import { Dropdown, Button, Menu } from 'antd-mobile';
  4. const SelectorDataForDropdown = [
  5. {
  6. label: '中餐',
  7. value: '21',
  8. }, {
  9. label: '还没生效',
  10. value: '22',
  11. disabled: true,
  12. }, {
  13. label: '关闭浮层',
  14. value: 'qx',
  15. }, {
  16. label: '自助餐',
  17. value: '24',
  18. }, {
  19. label: '快餐',
  20. value: '25',
  21. }, {
  22. label: '小吃',
  23. value: '26',
  24. }, {
  25. label: '面包甜点',
  26. value: '27',
  27. }, {
  28. label: '生鲜水果',
  29. value: '28',
  30. }, {
  31. label: '面食',
  32. value: '29',
  33. }, {
  34. label: '休闲食品',
  35. value: '210',
  36. }, {
  37. label: '日韩料理',
  38. value: '211',
  39. }, {
  40. label: '咖啡',
  41. value: '212',
  42. }, {
  43. label: '粤菜',
  44. value: '213',
  45. },
  46. ];
  47. const Test = React.createClass({
  48. getInitialState() {
  49. return {
  50. sel: '',
  51. };
  52. },
  53. onClick() {
  54. Dropdown.show(<div style={{ padding: 8 }}>
  55. <Button type="primary" onClick={() => { this.onClose('opt 1'); }}>创建层叠Dropdown</Button>
  56. <div style={{ height: 8 }} />
  57. <Button type="primary" ghost onClick={() => { this.onClose('opt 2'); }}>opt 2</Button>
  58. <div style={{ height: 8 }} />
  59. <Button onClick={() => { this.onClose('cancel'); }}>取消</Button>
  60. </div>, { maskClosable: false });
  61. },
  62. onClose(sel) {
  63. if (sel === 'opt 1') {
  64. this.newInstance();
  65. return;
  66. }
  67. this.setState({ sel });
  68. Dropdown.hide();
  69. },
  70. newInstance() {
  71. const ins = Dropdown.newInstance();
  72. const hide = (value) => {
  73. if (value[0] === 'qx') {
  74. ins.hide();
  75. }
  76. };
  77. ins.show(<Menu
  78. level={1}
  79. value={[SelectorDataForDropdown[0]]}
  80. data={SelectorDataForDropdown}
  81. onChange={hide}
  82. />, { maskClosable: false });
  83. },
  84. render() {
  85. return (<div style={{ padding: 8 }}>
  86. <Button type="primary" onClick={this.onClick}>show Dropdown</Button>
  87. 已选项目:{this.state.sel}
  88. </div>);
  89. },
  90. });
  91. ReactDOM.render(<Test />, mountNode);

Dropdown下拉菜单 - 图1

API (web)

static show(content: React.Element, options: Object):

options可选项:

  • maskClosable (bool) - 点击蒙层是否允许关闭,默认允许

  • transitionName (string) 自定义显示隐藏变换动画

  • maskTransitionName (string) 自定义遮罩层变换动画

static hide(): 关闭 Dropdown

static newInstance():

有些情况下,页面需要多处出现 Dropdown ,或在 Dropdown 里再产生 Dropdown。 返回 Dropdown 实例对象。对象包括:
  • show (function) - 同 static show

  • hide (function) - 同 static hide

API (ios/android)

  • visible (bool) - 是否显示 dropdown

  • maskClosable (bool) - 点击蒙层是否允许关闭,默认允许

  • onShow (function) - 显示 dropdown 时调用

  • onClose (function) - 隐藏 dropdown 时调用