react-router JS 控制路由跳转(转载)

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.pushreact

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) }, })
相关文章
相关标签/搜索