Link
组件用于正常的用户点击跳转,可是有时还须要表单跳转、点击按钮跳转等操做。这些状况怎么跟React Router对接呢?javascript
下面是一个表单。java
<form onSubmit={this.handleSubmit}>
<input type="text" placeholder="userName"/> <input type="text" placeholder="repo"/> <button type="submit">Go</button> </form>
第一种方法是使用browserHistory.push
react
import { browserHistory } from 'react-router' // ... handleSubmit(event) { event.preventDefault() const userName = event.target.elements[0].value const repo = event.target.elements[1].value const path = `/repos/${userName}/${repo}` browserHistory.push(path) },
第二种方法是使用context
对象。react-router
export default React.createClass({ // ask for `router` from context contextTypes: { router: React.PropTypes.object }, handleSubmit(event) { // ... this.context.router.push(path) }, })