相关疑难解决方法(0)

为反应路由器组件使用多个布局

如果我有以下内容:

<Route path="/" component={Containers.App}>

  { /* Routes that use layout 1 */ }
  <IndexRoute component={Containers.Home}/>
  <Route path="about" component={Containers.About}/>
  <Route path="faq" component={Containers.Faq}/>
  <Route path="etc" component={Containers.Etc}/>

  { /* Routes that use layout 2 */ }
  <Route path="products" component={Containers.Products}/>
  <Route path="gallery" component={Containers.Gallery}/>
</Route>
Run Code Online (Sandbox Code Playgroud)

我怎样才能使两组路线各自使用不同的布局.

如果我只有一个布局,那么我会把它放在App中,但在这种情况下,我在哪里定义布局?

为了使其更复杂,一些布局组件(例如顶部导航)在两种布局类型之间共享.

react-router

15
推荐指数
5
解决办法
2万
查看次数

React Router v5.0 嵌套路由

我正在构建一个反应应用程序,但我无法使路由工作。

  1. 我需要一些验证途径一个共同的布局(页眉,页脚)( ,/loginsign-upforgot-password等...)

  2. 我需要需要另一种常见的布局应用程序的保护部分的剩余部分(HomeDashboard,等...)

  3. 我需要另一个没有任何布局的 404 页面。

我从这些链接中尝试了几种技术:

但可以达到工作版本。

这是我目前拥有的:

(注意:现在我忽略了阻止非登录用户进入 AppLayout 的私有路由的需要,我会在之后处理这个问题)

const App: React.FC = () => {
    const history = createBrowserHistory();

    return (
        <div className="App">
            <Router history={history}>
                <Switch>
                    <AppLayout>
                        <Route path="/home" component={HomePage}/>
                        <Route path="/dashboard" component={DashboardPage}/>
                        ...
                    </AppLayout>
                    <AuthLayout>
                        <Route path="/login" component={LoginPage}/>
                        <Route path="/sign-up" component={SignUpPage}/>
                        ...
                    </AuthLayout>
                    <Route path="*" component={NotFoundPage} />
                </Switch>
            </Router>
        </div>
    );
};

export …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router

7
推荐指数
2
解决办法
2万
查看次数

如何使用React渲染不同的布局?

我想显示导航栏只为这个网址:/contact/services。而且我不想显示的Navbar /signin。目前,这是我所拥有的:

import React, { Component } from 'react';
import { BrowserRouter, Route, Switch } from 'react-router-dom';

import PublicLayout from './components/layouts/PublicLayout';
import SigninLayout from './components/layouts/SigninLayout';

import Main from './components/pages/Main';
import Services from './components/pages/Services';
import Contact from './components/pages/Contact';

class App extends Component {
    render() {
        return (
            <BrowserRouter>
                <div className="App">
                  <Switch>                    
                    <PublicLayout>
                            <Route exact path='/' component={Main} />
                            <Route exact path='/services' component={Services} />
                            <Route exact path='/contact' component={Contact} />
                    </PublicLayout>
                    <SigninLayout>
                            <Route exact path='/signin' component={Signin} />
                    </SigninLayout>
                  </Switch> …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router

3
推荐指数
1
解决办法
2709
查看次数

标签 统计

react-router ×3

reactjs ×2

javascript ×1