账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    react-router如何写两个不同的header导航
    42
    0
    import React, {Component} from 'react';
    import { BrowserRouter as Router, Route, NavLink,Switch } from "react-router-dom";
    import './index.less';
    
    import Index from '../../pages/Index';
    import About from '../../pages/About';
    import ProfessorList from '../../pages/ProfessorList';
    import Intro from '../../pages/Intro';
    import logo from '../../images/logo.png';
    
    export default class Header extends Component {
        render() {
            return (
                <Router>
                    <div className="header">
                        <div className="logo-bar">
                            <div className="fixed-width">
                                <div className="logo">
                                    <img src={logo} alt="logo" />
                                </div>
                                <div className="search-bar">
    
                                </div>
                            </div>
                        </div>
                        <div className="header-bar">
                            <div className="fixed-width">
                                <ul>
                                    <li>
                                        <NavLink to="/" exact activeClassName="nav-active">首页</NavLink>
                                    </li>
                                    <li>
                                        <NavLink to="/intro" activeClassName="nav-active">智库概况</NavLink>
                                    </li>
                                    <li>
                                        <NavLink to="/professor" activeClassName="nav-active">专家团队</NavLink>
                                    </li>
                                </ul>
                            </div>
                        </div>
                        <div className="content">
                            <Switch>
                                <Route exact path="/" component={Index}/>
                                <Route path="/professor" component={ProfessorList}/>
                                <Route path="/intro" component={Intro}/>
                            </Switch>
                        </div>
                    </div>
                </Router>
            );
        }
    }
    
    

    如上是我写好的header导航,我想写另一个header导航在打开其他页面的时候展示,在注册组件的时候该怎么注册?

    mainroute.js

    import React from "react";
    import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
    import NewsDetail from '../pages/NewsDetail';
    import TopBar from '../components/TopBar';
    import Header from '../components/Header';
    import Index from '../pages/Index';
    import About from '../pages/About';
    import Contact from '../pages/Contact';
    import Intro from '../pages/Intro';
    import App from '../index';
    
    const routes = [
        {
            path: "/detail/:id",
            component: NewsDetail
        },
        // {
        //     path: "/index",
        //     component: Index
        // },
        // {
        //     path: "/about",
        //     component: About
        // },
        // {
        //     path: "/contact",
        //     component: Contact
        // },
        // {
        //     path: "/intro",
        //     component: Intro
        // },
        // {
        //     path: "/tacos",
        //     component: Tacos,
        //     routes: [
        //         {
        //             path: "/tacos/bus",
        //             component: Bus
        //         },
        //         {
        //             path: "/tacos/cart",
        //             component: Cart
        //         }
        //     ]
        // }
    ];
    
    const RouteWithSubRoutes = route => (
        <Route
            path={route.path}
            render={props => (
                <route.component {...props} routes={route.routes} />
            )}
        />
    );
    
    const MainRoute = () => (
        <Router>
            <Switch>
                {/*<Route exact path="/" component={Index}/>*/}
                <Header/>
                <TopBar/>
                {routes.map((route, i) => <RouteWithSubRoutes key={i} {...route} />)}
            </Switch>
        </Router>
    );
    
    export default MainRoute;

    App.js

    import React, { Component } from 'react';
    import MainRoute from './router/';
    
    class App extends Component {
        render() {
            return (
                <div>
                    <MainRoute/>
                </div>
            );
        }
    }
    
    export default App;
    

    index.js

    import React from "react";
    import ReactDOM from 'react-dom';
    import './style/common.less';
    
    import App from './App'
    ReactDOM.render(<App/>, document.getElementById('root'))
    

    我这样写则会在所有页面都存在header导航,而不是换成另一个导航,该怎么办?

    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部