使用Antd,我试图使用尽可能少的自定义代码的现有组件来创建下面所附的菜单。
我尝试了一些实现,但这只是在欺骗xd -_-
我在sider布局旁边放置了一个菜单组件,并在单击项目时切换了sider布局,但这似乎不是一个好的解决方案
关于如何实施的任何建议?子菜单也应该覆盖页面的内容。
import React from "react";
import ReactDOM from "react-dom";
import "antd/dist/antd.css";
import "./index.css";
import { Menu, Icon, Button, Layout } from "antd";
const { SubMenu } = Menu;
const { Header, Content, Sider } = Layout;
class App extends React.Component {
state = {
collapsed: false
};
toggleCollapsed = () => {
this.setState({
collapsed: !this.state.collapsed
});
};
render() {
return (
<Layout>
<div style={{ minHeight: 800 }}>
<Menu
defaultSelectedKeys={["1"]}
defaultOpenKeys={["sub1"]}
mode="inline"
theme="dark"
inlineCollapsed={true}
style={{ minHeight: 800 }}
>
<Menu.Item key="1">
<Icon type="pie-chart" />
<span>Option 1</span>
</Menu.Item>
<Menu.Item key="2">
<Icon type="desktop" />
<span>Option 2</span>
</Menu.Item>
<Menu.Item key="3">
<Icon type="inbox" />
<span>Option 3</span>
</Menu.Item>
</Menu>
</div>
<Sider>
<Menu
mode="inline"
defaultSelectedKeys={['1']}
defaultOpenKeys={['sub1']}
style={{ height: '100%', borderRight: 0 }}
>
<SubMenu
key="sub1"
title={
<span>
<Icon type="user" />
subnav 1
</span>
}
>
<Menu.Item key="1">option1</Menu.Item>
<Menu.Item key="2">option2</Menu.Item>
<Menu.Item key="3">option3</Menu.Item>
<Menu.Item key="4">option4</Menu.Item>
</SubMenu>
<SubMenu
key="sub2"
title={
<span>
<Icon type="laptop" />
subnav 2
</span>
}
>
<Menu.Item key="5">option5</Menu.Item>
<Menu.Item key="6">option6</Menu.Item>
<Menu.Item key="7">option7</Menu.Item>
<Menu.Item key="8">option8</Menu.Item>
</SubMenu>
<SubMenu
key="sub3"
title={
<span>
<Icon type="notification" />
subnav 3
</span>
}
>
<Menu.Item key="9">option9</Menu.Item>
<Menu.Item key="10">option10</Menu.Item>
<Menu.Item key="11">option11</Menu.Item>
<Menu.Item key="12">option12</Menu.Item>
</SubMenu>
</Menu>
</Sider>
</Layout>
);
}
}
ReactDOM.render(<App />, document.getElementById("container"));