Jav*_*ner 9 javascript reactjs react-router
我在用
"react": "^15.6.1",
"react-dom": "^15.6.1",
"react-router": "^4.1.2",
Run Code Online (Sandbox Code Playgroud)
野兔我的溃败:
<BrowserRouter>
<div>
<Route exact path='/' component={Layout}></Route>
<Route path='/about' name="about" component={About}>
<Route path="/:article" component={anotherAbout}></Route>
</Route>
<Route path='/protfolio' name="protfolio" component={Portfolio}></Route>
</div>
</BrowserRouter >
Run Code Online (Sandbox Code Playgroud)
当我打电话 {this.props.match.params.article}给 undefined
为什么staticContext: undefined和我的props.match.params空对象。
看一下React-router v4 文档中的这个基本示例。
查看const Topics = ({ match }) => ( ... ),您将看到该组件底部的嵌套路由。这就是在react-router v4 中嵌套路由的方式。如果你解决这个问题,你的问题应该得到解决。
import React from 'react'
import {
BrowserRouter as Router,
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 = ({ 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 = ({ match }) => (
<div>
<h3>{match.params.topicId}</h3>
</div>
)
export default BasicExample
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21228 次 |
| 最近记录: |