ReactRouter v4 - 重定向不适用于 Switch

问题描述:

我有一个代码:

import React from 'react';
import ReactDOM from 'react-dom';
import Navigation from './Navigation';
import PublicPage from './PublicPage';
import LoginPage from './LoginPage';
import SecuredPage from './SecuredPage';
import {Route, Switch, Redirect, BrowserRouter} from 'react-router-dom';

ReactDOM.render(
    <BrowserRouter>
        <Navigation>
            <Switch>
                <Redirect from='/' to='/public'/>
                <Route path="/public" component={PublicPage}/>
                <Route path="/login" component={LoginPage}/>
                <Route path="/secured" component={SecuredPage}/>
            </Switch>
        </Navigation>
    </BrowserRouter>,
    document.getElementById("react-app")
);

现在我希望路径 / 重定向到 /public 路径,但不知何故此配置不起作用.其他路线也停止渲染.我想我做的一切都像文档

Now I want path / to redirect to /public path but somehow this configuration doesn't work. Other routes stop rendering as well. I think I do everything like in documentation

Swap

<Redirect from='/' to='/public'/>

<Redirect exact from='/' to='/public'/>

因为否则 '/' 将匹配所有内容,从而创建无限重定向循环

because otherwise '/' will match everything, creating an infinite redirect loop