mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-01-29 21:17:34 +00:00
73 lines
1.4 KiB
TypeScript
73 lines
1.4 KiB
TypeScript
import * as React from 'react'
|
|
import {
|
|
BrowserRouter as Router,
|
|
RouteComponentProps,
|
|
Route,
|
|
Link
|
|
} from 'react-router-dom'
|
|
|
|
const BasicExample = () => (
|
|
<Router>
|
|
<div>
|
|
<ul>
|
|
<li><Link to="/">Home</Link></li>
|
|
<li><Link to="/about">About</Link></li>
|
|
<li><Link to="/topics">Topics</Link></li>
|
|
</ul>
|
|
|
|
<hr/>
|
|
|
|
<Route exact path="/" component={Home}/>
|
|
<Route path="/about" component={About}/>
|
|
<Route path="/topics" component={Topics}/>
|
|
</div>
|
|
</Router>
|
|
)
|
|
|
|
const Home = () => (
|
|
<div>
|
|
<h2>Home</h2>
|
|
</div>
|
|
)
|
|
|
|
const About = () => (
|
|
<div>
|
|
<h2>About</h2>
|
|
</div>
|
|
)
|
|
|
|
const Topics: React.SFC<RouteComponentProps<void>> = ({ match }) => (
|
|
<div>
|
|
<h2>Topics</h2>
|
|
<ul>
|
|
<li>
|
|
<Link to={`${match.url}/rendering`}>
|
|
Rendering with React
|
|
</Link>
|
|
</li>
|
|
<li>
|
|
<Link to={`${match.url}/components`}>
|
|
Components
|
|
</Link>
|
|
</li>
|
|
<li>
|
|
<Link to={`${match.url}/props-v-state`}>
|
|
Props v. State
|
|
</Link>
|
|
</li>
|
|
</ul>
|
|
|
|
<Route path={`${match.url}/:topicId`} component={Topic}/>
|
|
<Route exact path={match.url} render={() => (
|
|
<h3>Please select a topic.</h3>
|
|
)}/>
|
|
</div>
|
|
)
|
|
|
|
const Topic: React.SFC<RouteComponentProps<{topicId: string}>> = ({ match }) => (
|
|
<div>
|
|
<h3>{match.params.topicId}</h3>
|
|
</div>
|
|
)
|
|
|
|
export default BasicExample |