1. <Redirect>

渲染一个<Redirect>将导航到一个新的位置。新的位置将覆盖历史堆栈中的当前位置,就像服务器端重定向(HTTP 3xx)那样。

import { Route, Redirect } from 'react-router'

<Route exact path="/" render={() => (
  loggedIn ? (
    <Redirect to="/dashboard"/>
  ) : (
    <PublicHomePage/>
  )
)}/>

2. Props

2.1. to: string

重定向到的URL,path-to-regexp 能解析的任何有效的URL路径。to里面使用的所有URL参数必须被from覆盖。因为它只是重定向而已。

<Redirect to="/somewhere/else"/>

2.2. to: object

用来重定向的location。pathname可以是任何能被 path-to-regexp 解析的路径。

<Redirect to={{
  pathname: '/login',
  search: '?utm=your+face',
  state: { referrer: currentLocation }
}}/>

2.3. push: bool

当为true时,重定向将推动一个新的条目进入历史,而不是取代当前的条目。

<Redirect push to="/somewhere/else"/>

2.4. from: string

一个路径名,用来表示从哪里重定向。它是任何可以被path-to-regexp 解析的有效URL路径。所有匹配的URL参数都提供给to中的模式。在to中必须包含所使用的所有参数。to中未使用的附加参数被忽略。

当它在<Switch>中渲染一个<Redirect>时,这只能用于匹配一个location。参见 <Switch children>

<Switch>
  <Redirect from='/old-path' to='/new-path'/>
  <Route path='/new-path' component={Place}/>
</Switch>
//含匹配参数的重定向
<Switch>
  <Redirect from='/users/:id' to='/users/profile/:id'/>
  <Route path='/users/profile/:id' component={Profile}/>
</Switch>
Copyright © tuzhu008 2017 all right reserved,powered by Gitbook该文件修订时间: 2017-11-26 15:52:19

results matching ""

    No results matching ""