Переключите маршрутизатор с Navbar - PullRequest
0 голосов
/ 22 мая 2019

Мне бы хотелось, чтобы навигационная панель находилась вверху каждой страницы, кроме страницы «Введение».Это правильный способ сделать это?Есть ли более чистый способ сделать это?

<BrowserRouter>
    <div>
        <Switch>
            <Route exact path = "/" component = {Introduction} />
            <div>
                <Navbar/>
                <PrivateRoute path = "/main" component = {main} />)
                <PrivateRoute path = "/other" component = {other} />)
            </div>
        </Switch>
    </div>
</BrowserRouter>

1 Ответ

1 голос
/ 22 мая 2019

Вы можете сделать это, выполнив что-то вроде этого:

class App extends React.Component{
    render(){
        const DefaultRoutes = () => {
            return(
                <div>
                    <Navbar/>
                    <Switch>
                        <PrivateRoute path = "/main" component = {main} />)
                        <PrivateRoute path = "/other" component = {other} />)
                    </Switch>                                                                                                           
                </div>
            )
        }

        return(
            <BrowserRouter>
                <div>
                    <Switch>
                        <Route exact path = "/" component = {Introduction} />
                        <Route component={DefaultRoutes}/>
                    </Switch>
                </div>
            </BrowserRouter>
        )
    }
}

export default App

Определить функцию DefaultRoutes, которая включает в себя все маршруты, которые будут иметь навигационную панель. Затем используйте эту функцию в качестве компонента для маршрута в вашем BrowserRouter. Все остальное, для чего не нужен Navbar, может быть определено в его собственном маршруте, например, Введение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...