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