react js中的多级下拉菜单不可用还是什么?像反应引导 [英] Multi-Level Dropdown menu in react js is not available or what? Like react-bootstrap

查看:53
本文介绍了react js中的多级下拉菜单不可用还是什么?像反应引导的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用下面的

import Navbar from 'react-bootstrap/Navbar';
import Nav from 'react-bootstrap/Nav';
import NavDropdown from 'react-bootstrap/NavDropdown'

但我找不到像

My-Menu
       menu-1
             menu-1-a
             menu-1-b   
       menu-2
       menu-3
            menu-3-a
            menu-3-b

'react-bootstrap' 中是否有我可以使用的多级下拉菜单.

is there Multi-Level Dropdown menu in 'react-bootstrap' that I can use please.

推荐答案

这是您要找的吗?http://jsfiddle.net/n5u2wwjg/233886/

class DropdownMenu extends React.Component {

  getMenuItemTitle = (menuItem, index, depthLevel) => {
    return menuItem.title;
  };
 
  getMenuItem = (menuItem, depthLevel, index) => {
    let title = this.getMenuItemTitle(menuItem, index, depthLevel);

    if (menuItem.submenu && menuItem.submenu.length > 0) {
      return (
        <li>
          {title}
          <DropdownMenu config={menuItem.submenu} submenu={true} />
        </li>
      );
    } else {
      return <li>{title}</li>;
    }
  };

  render = () => {
    let { config } = this.props;

    let options = [];
    config.map((item, index) => {
      options.push(this.getMenuItem(item, 0, index));
    });

    if (this.props.submenu && this.props.submenu === true)
      return <ul>{options}</ul>;

    return <ul className="dropdown-menu">{options}</ul>;
  };
}


ReactDOM.render(<DropdownMenu config={[
    {
      "title": "Option 1",
      "submenu": null
    },
    {
      "title": "Option 2",
      "submenu": [
        {
          "title": "Option 2.1",
          "submenu": [
            {
              "title": "Option 2.1.1",
              "submenu": null
            },
            {
              "title": "Option 2.1.2",
              "submenu": null
            }
          ]
        },
        {
          "title": "Option 2.2",
          "submenu": [
            {
              "title": "Option 2.2.1",
              "submenu": null
            },
            {
              "title": "Option 2.2.2",
              "submenu": null
            }
          ]
        }
      ]
    }
  ]}/>, document.querySelector("#app"))

.dropdown-menu {
  height: 35px;
  list-style: none;
  margin: 0;
  padding: 0;
  float: left;
  text-align: center;
}

.dropdown-menu li {
  display: inline-block;
  position: relative;
  float: left;
  width: 200px;
  line-height: 35px;
  text-decoration: none;
}

.dropdown-menu li li a {
  font-size: 12px;
}

.dropdown-menu li:hover {
  background: blue;
}


/*--- Sublist Styles ---*/

.dropdown-menu ul {
  position: absolute;
  display: none;
}


/*--- Hide Sub Sublists ---*/

.dropdown-menu li:hover ul ul {
  display: none;
}


/*--- Sublevel UL's display and position on hover ---*/

.dropdown-menu li:hover ul {
  display: block;
}

.dropdown-menu li li:hover ul {
  margin-left: 200px;
  /*This must be width of menu box*/
  margin-top: -35px;
  display: block;
}

nu-li {
  padding: 10px;
}

.dropdown-submenu {
  position: absolute;
  left: 0px;
  top: 0px;
}

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.3.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.3.1/umd/react-dom.production.min.js"></script>
<div id="app"></div>

这篇关于react js中的多级下拉菜单不可用还是什么?像反应引导的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆