React-router 要点

时间:2021-03-07 16:51:38

1.关于url中传参的问题

比如我想打开:

/articles/detail/101

在url中要传一个参数

/articles/detail/:articleId
路由中:
<Route path="/articles/detail/:articleId" component={ArticleDetail}/> Link中:
<Link to="/article/detail/101">文章</Link> 如何在页面中取到参数
<div>{this.props.params.articleId}</div>

2.如何用js来实现页面路由的跳转

在react-router中,两种方法:

第一种,使用withRouter(),然后将在内部可以获取this.props.router

第二种,使用this.context.router.push('/'),不过在使用前必须定义这个类的contextTypes

withRouter怎么用?

import React from 'react'
import {withRouter} from 'react-router' class App extends React.Component {
...
this.props.router.push('/')
} export default withRouter(App)

用context怎么用呢?

...
export default class App extends React.Component {
...
this.context.router.push('/')
}
App.contextTypes = {
router: React.PropsTypes.object
} //等同于下面的写法 ...
export default React.createClass({
contextTypes: {
router: React.PropsTypes.object
}
...
this.context.router.push('/')
...
})

转自 http://www.jianshu.com/p/0e54c6b6ab2b 作者 JasonFF