Link组件用于正常的用户点击跳转,但是有时还需要表单跳转、点击按钮跳转等操作。这些情况怎么跟React Router对接呢?
下面是一个表单。
<form onSubmit={this.handleSubmit}> ?<input type="text" placeholder="userName"/> ?<input type="text" placeholder="repo"/> ?<button type="submit">Go</button></form>
第一种方法是使用browserHistory.push
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对象。
export default React.createClass({ ?// ask for `router` from context ?contextTypes: { ???router: React.PropTypes.object ?}, ?handleSubmit(event) { ???// ... ???this.context.router.push(path) ?},})
react-router JS 控制路由跳转(转载)
原文地址:https://www.cnblogs.com/daiwenru/p/8444357.html