Antd Menu组件应该如何结合react-router Link组件?

发布于 2022-09-05 06:16:13 字数 3376 浏览 11 评论 0

如题,在通过create-react-app脚手架搭建项目,antd作为UI部分的实现。
通过侧边栏导航Menu的Menu.Item控制Content部分的变化。

import React, {Component} from 'react';
import {
    BrowserRouter as Router,
    Route,
    Link
} from 'react-router-dom'
import FileSystem from './file_system/file_system';
import OverView from '../component/Overview/OverView';
import {Breadcrumb, Layout, Menu, Icon} from 'antd';
const {Content, Header, Footer, Sider} = Layout;

class AntdGrid extends Component {
    state = {
        collapsed: false,
    };
    toggle = () => {
        this.setState({
            collapsed: !this.state.collapsed,
        });
    }

    onCollapse = (collapsed) => {
        console.log(collapsed);
        this.setState({collapsed});
    }

    render() {
        return (
            <Layout className="antd-wrap">
                <Sider
                    style={{background: '#fff'}}
                    breakpoint="lg"
                    width={200}
                    collapsible
                    collapsed={this.state.collapsed}
                    onCollapse={this.onCollapse}
                    collapsedWidth={64}
                    trigger={null}
                >
                    <div className="logo"/>

                    <Menu theme="light" defaultSelectedKeys={['1']} mode="inline">
                        <Menu.Item key="1" as={Link} to='/'>
                            <Icon type="pie-chart"/>
                            <span>概览</span>
                        </Menu.Item>
                        <Menu.Item key="2" as={Link} to="/filesystem">
                            <Icon type="desktop"/>
                            <span>文件系统</span>
                        </Menu.Item>
                    </Menu>


                </Sider>
                <Layout>
                    <Header style={{background: '#fff', padding: 0}}>
                        <Icon
                            className="trigger"
                            type={this.state.collapsed ? 'menu-unfold' : 'menu-fold'}
                            onClick={this.toggle}
                        />
                    </Header>
                    <Content style={{margin: '0 16px'}}>
                        <Breadcrumb style={{margin: '12px 0'}}>
                            <Breadcrumb.Item>概览</Breadcrumb.Item>
                            <Breadcrumb.Item> </Breadcrumb.Item>
                        </Breadcrumb>
                        <div style={{background: '#fff', minHeight: 360, overflow: 'hidden'}}>
                            <Router>
                                <Route path="/" component={OverView}/>
                                <Route path="/filesystem" component={FileSystem}/>
                            </Router>
                        </div>
                    </Content>
                    <Footer style={{textAlign: 'center'}}>
                    </Footer>
                </Layout>
            </Layout>
        );
    }
}

export default AntdGrid

查阅了Menu组件应该如何结合react-router Link组件?

没有想通问题所在。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

满天都是小星星 2022-09-12 06:16:14
<Menu.Item key="1">
    <Icon type="pie-chart"/>
    <Link to='/>概览</Link >
</Menu.Item>
<Menu.Item key="2">
    <Icon type="desktop"/>
    <Link to='/filesystem'>文件系统</Link >
</Menu.Item>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文