mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-24 05:06:02 +08:00
48 lines
1.2 KiB
TypeScript
48 lines
1.2 KiB
TypeScript
import * as React from 'react'
|
|
import {
|
|
BrowserRouter as Router,
|
|
RouteComponentProps,
|
|
Route,
|
|
Link,
|
|
Switch,
|
|
Redirect
|
|
} from 'react-router-dom'
|
|
|
|
const NoMatchExample = () => (
|
|
<Router>
|
|
<div>
|
|
<ul>
|
|
<li><Link to="/">Home</Link></li>
|
|
<li><Link to="/old-match">Old Match, to be redirected</Link></li>
|
|
<li><Link to="/will-match">Will Match</Link></li>
|
|
<li><Link to="/will-not-match">Will Not Match</Link></li>
|
|
<li><Link to="/also/will/not/match">Also Will Not Match</Link></li>
|
|
</ul>
|
|
<Switch>
|
|
<Route path="/" exact component={Home}/>
|
|
<Redirect from="/old-match" to="/will-match"/>
|
|
<Route path="/will-match" component={WillMatch}/>
|
|
<Route component={NoMatch}/>
|
|
</Switch>
|
|
</div>
|
|
</Router>
|
|
)
|
|
|
|
const Home = () => (
|
|
<p>
|
|
A <code><Switch></code> renders the
|
|
first child <code><Route></code> that
|
|
matches. A <code><Route></code> with
|
|
no <code>path</code> always matches.
|
|
</p>
|
|
)
|
|
|
|
const WillMatch = () => <h3>Matched!</h3>
|
|
|
|
const NoMatch: React.SFC<RouteComponentProps<void>> = ({ location }) => (
|
|
<div>
|
|
<h3>No match for <code>{location.pathname}</code></h3>
|
|
</div>
|
|
)
|
|
|
|
export default NoMatchExample |