垂直 Menu Ant 设计高度 100%

vertical Menu Ant design height 100%

下午好。我是 Web 开发的新手,我无法将 ant design 菜单 (https://ant.design/components/menu/) 置于屏幕高度的 100%。

我试着把 <Layout style = {{height:" 100vh "}}> 放在 之前,但是没有用。

这是我正在使用的代码

。 . . . .

import React from 'react'
import { Layout, Menu, Breadcrumb, Icon, Button } from 'antd';

const { Header, Content, Footer, Sider } = Layout;
const SubMenu = Menu.SubMenu;

export class SideMenu extends React.Component {

  constructor(props){
    super(props)
    this.state = {collapsed: false}
  }

  toggleCollapsed (){
     this.setState({
       collapsed: !this.state.collapsed
     })
  }

  render() {
    return (
      <div style={{ width: 256 }}>
        <Menu
          defaultSelectedKeys={[]}
          defaultOpenKeys={[]}
          mode="inline"
          theme="light"
          inlineCollapsed={this.state.collapsed}
        >
          <Menu.Item key="0">
            <div onClick={this.toggleCollapsed.bind(this)}>
              <Icon type={this.state.collapsed ? 'menu-unfold' : 'menufold'}/>
            </div>
          </Menu.Item>    
          ...    
          <Menu.Item key="5">
            <Icon type="rocket" />
            <span>Funções</span>
          </Menu.Item>
        </Menu>
      </div>
    );
  }
}

感谢您的帮助。

尝试管理单独的样式sheet(在我的例子中menu.less)并把它放在这个代码

应该可以工作

.menu-style {

height: 100vh;
width: 200px;
position: fixed;
}

试试吧。

您可以使用ref获取您想要的参考高度DOM。然后在一些组件上使用高度。

function refIt(theDOM) {
  const height = theDOM.clientHeight;
  this.setState({ height });
}

return (<div ref={theDOM => refIt(theDOM)}>
  <div height={this.state.height}>
  </div>
</div>);