• react-router-dom v5.1.2 版本 实现嵌套路由


    找了好久都没有找到最新版的中文文档 v5.1.2。。。

    入口文件 src/index.js

    import React from 'react';
    import ReactDOM from 'react-dom';
    import './index.css';
    import AppRoute from './AppRoute';
    import * as serviceWorker from './serviceWorker';
    
    ReactDOM.render(<AppRoute />, document.getElementById('root'));
    
    serviceWorker.unregister();

    路由表 src/AppRoute.js

    import React,{Component} from 'react';
    import {
        HashRouter,
        BrowserRouter as Router,
        Switch,
        Route,
        Link
      } from "react-router-dom";
    import App from './page/App';
    import Test from './page/Test';
    import NotFound from './page/NotFound';
    
    class AppRoute extends Component{
        constructor(props){
            super(props);
            this.state = {};
        }
        render() {
            return <HashRouter>
            <Switch>
                {/* 首页 */}
                <Route path="/" component={()=>(
                    <App>
                        {/* 测试 */}
                        <Route exact path="/test" component={Test}/>
                        {/* 404页面 */}
                        <Route path="*" component={NotFound}/>
                    </App>
                )}>
                </Route>
            </Switch>
        </HashRouter>
        }
    }
    export default AppRoute;

    首页 src/page/App/index.js

    import React,{Component} from 'react';
    import LeftMenu from './components/LeftMenu';
    
    import './index.scss';
    
    class App extends Component{
        constructor(props){
            super(props);
            this.state = {};
        }
        render() {
            return <div className="body">
                <div className="children-container">
                    {this.props.children}
                </div>
            </div>
        }
    }
    
    export default App;

    子页面 Test(名字随意)src/page/Test/index.js

    import React,{Component} from 'react';
    
    import './index.scss';
    
    class Test extends Component{
        constructor(props){
            super(props);
            this.state = {};
        }
        render() {
            return <div className="container">
            测试
            </div>
        }
    }
    
    export default Test;

    使用参考链接的代码,出现了错误,提示router需要传入字符串或函数,修改为本文中的代码即可实现嵌套路由

    参考:在React中使用react-router-dom路由 https://www.jianshu.com/p/8954e9fb0c7e

  • 相关阅读:
    LINQ分组排序后获取每组第一条记录
    String 中的Trim
    C# Switch优雅写法
    C# 输入指定日期获取当前年的第一天 、当前年的最后天、某月的第一天 、某月的最后一天
    快捷方式 ABP——切换MySQL数据库
    新建立git分支,之后将分支合并到master上
    C# Contains()、 == 和Equals() 比较
    使用TimeSpan 日期与时间拼接
    ActiveReports报表行号
    iOS基础(八)——最新更新方法,每天只提示一次
  • 原文地址:https://www.cnblogs.com/xiaqiuchu/p/12462196.html
Copyright © 2020-2023  润新知