Element-React Dropdown 下拉菜單

2020-10-19 10:29 更新

將動作或菜單折疊到下拉菜單中。

基礎(chǔ)用法

移動到下拉菜單上,展開更多操作。

顯示下拉菜單,默認(rèn)情況下,下拉按鈕只要hover即可,無需點擊。

render() {
  return (
    <Dropdown menu={(
      <Dropdown.Menu>
        <Dropdown.Item>黃金糕</Dropdown.Item>
        <Dropdown.Item>獅子頭</Dropdown.Item>
        <Dropdown.Item>螺螄粉</Dropdown.Item>
        <Dropdown.Item disabled>雙皮奶</Dropdown.Item>
        <Dropdown.Item divided>蚵仔煎</Dropdown.Item>
      </Dropdown.Menu>
      )}
    >
      <span className="el-dropdown-link">
        下拉菜單<i className="el-icon-caret-bottom el-icon--right"></i>
      </span>
    </Dropdown>
  )
}

觸發(fā)對象

可使用按鈕觸發(fā)下拉菜單。

設(shè)置splitButton屬性來讓觸發(fā)下拉元素呈現(xiàn)為按鈕組,左邊是功能按鈕,右邊是觸發(fā)下拉菜單的按鈕,設(shè)置為true即可。

render() {
  return (
    <div>
      <Dropdown menu={(
        <Dropdown.Menu>
          <Dropdown.Item>黃金糕</Dropdown.Item>
          <Dropdown.Item>獅子頭</Dropdown.Item>
          <Dropdown.Item>螺螄粉</Dropdown.Item>
          <Dropdown.Item>雙皮奶</Dropdown.Item>
          <Dropdown.Item>蚵仔煎</Dropdown.Item>
        </Dropdown.Menu>
      )}>
        <Button type="primary">
          更多菜單<i className="el-icon-caret-bottom el-icon--right"></i>
        </Button>
      </Dropdown>
      <Dropdown splitButton={true} type="primary" onClick={this.handleClick.bind(this)} menu={(
        <Dropdown.Menu>
          <Dropdown.Item>黃金糕</Dropdown.Item>
          <Dropdown.Item>獅子頭</Dropdown.Item>
          <Dropdown.Item>螺螄粉</Dropdown.Item>
          <Dropdown.Item>雙皮奶</Dropdown.Item>
          <Dropdown.Item>蚵仔煎</Dropdown.Item>
        </Dropdown.Menu>
      )}>更多菜單</Dropdown>
    </div>
  )
}


handleClick() {
  alert('button click');
}

觸發(fā)方式

可以配置 click 激活或者 hover 激活。

trigger屬性設(shè)置為click即可。

render() {
  return (
    <Layout.Row className="block-col-2">
      <Layout.Col span="12">
        <span className="demonstration">hover 激活</span>
        <Dropdown menu={(
          <Dropdown.Menu>
            <Dropdown.Item>黃金糕</Dropdown.Item>
            <Dropdown.Item>獅子頭</Dropdown.Item>
            <Dropdown.Item>螺螄粉</Dropdown.Item>
            <Dropdown.Item>雙皮奶</Dropdown.Item>
            <Dropdown.Item>蚵仔煎</Dropdown.Item>
          </Dropdown.Menu>
        )}>
          <span className="el-dropdown-link">
            下拉菜單<i className="el-icon-caret-bottom el-icon--right"></i>
          </span>
        </Dropdown>
      </Layout.Col>
      <Layout.Col span="12">
        <span className="demonstration">click 激活</span>
        <Dropdown trigger="click" menu={(
          <Dropdown.Menu>
            <Dropdown.Item>黃金糕</Dropdown.Item>
            <Dropdown.Item>獅子頭</Dropdown.Item>
            <Dropdown.Item>螺螄粉</Dropdown.Item>
            <Dropdown.Item>雙皮奶</Dropdown.Item>
            <Dropdown.Item>蚵仔煎</Dropdown.Item>
          </Dropdown.Menu>
        )}>
          <span className="el-dropdown-link">
            下拉菜單<i className="el-icon-caret-bottom el-icon--right"></i>
          </span>
        </Dropdown>
      </Layout.Col>
    </Layout.Row>
  )
}

菜單隱藏方式

可以hideOnClick屬性來配置。

下拉菜單默認(rèn)在點擊菜單項后會被隱藏,將hideOnClick屬性默認(rèn)為false可以關(guān)閉此功能。

render() {
  return (
    <Dropdown hideOnClick={false} menu={(
      <Dropdown.Menu>
        <Dropdown.Item>黃金糕</Dropdown.Item>
        <Dropdown.Item>獅子頭</Dropdown.Item>
        <Dropdown.Item>螺螄粉</Dropdown.Item>
        <Dropdown.Item disabled>雙皮奶</Dropdown.Item>
        <Dropdown.Item divided>蚵仔煎</Dropdown.Item>
      </Dropdown.Menu>
    )}>
      <span className="el-dropdown-link">
        下拉菜單<i className="el-icon-caret-bottom el-icon--right"></i>
      </span>
    </Dropdown>
  )
}

指令事件

點擊菜單項后會觸發(fā)事件,用戶可以通過相應(yīng)的菜單項 key 進行不同的操作

handleCommand(command) {
  Message('click on item ' + command);
}


render() {
  return (
    <Dropdown onCommand={this.handleCommand.bind(this)} menu={(
      <Dropdown.Menu>
        <Dropdown.Item command="a">黃金糕</Dropdown.Item>
        <Dropdown.Item command="b">獅子頭</Dropdown.Item>
        <Dropdown.Item command="c">螺螄粉</Dropdown.Item>
        <Dropdown.Item command="d" disabled>雙皮奶</Dropdown.Item>
        <Dropdown.Item command="e" divided>蚵仔煎</Dropdown.Item>
      </Dropdown.Menu>
    )}>
      <span className="el-dropdown-link">
        下拉菜單<i className="el-icon-caret-bottom el-icon--right"></i>
      </span>
    </Dropdown>
  )
}

Dropdown Attributes

參數(shù) 說明 類型 可選值 默認(rèn)值
type 菜單按鈕類型,同 Button 組件(只在splitButton為 true 的情況下有效) string
size 菜單按鈕尺寸,同 Button 組件(只在splitButton為 true 的情況下有效) string
splitButton 下拉觸發(fā)元素呈現(xiàn)為按鈕組 boolean false
menuAlign 菜單水平對齊方向 string start, end end
trigger 觸發(fā)下拉的行為 string hover, click hover
hideOnClick 是否在點擊菜單項后隱藏菜單 boolean true

Dropdown Events

事件名稱 說明 回調(diào)參數(shù)
onClick splitButton 為 true 時,點擊左側(cè)按鈕的回調(diào)
onCommand 點擊菜單項觸發(fā)的事件回調(diào) Dropdown.Item 的指令
onVisibleChange 下拉框出現(xiàn)/隱藏時觸發(fā) 出現(xiàn)則為 true,隱藏則為 false

Dropdown Menu Item Attributes

參數(shù) 說明 類型 可選值 默認(rèn)值
command 指令 string
disabled 禁用 boolean false
divided 顯示分割線 boolean false
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號