React browserHistory.push 传参

Submitted by Lizhe on Tue, 03/27/2018 - 16:03

传参方式1:

将参数直接写在路径中,前提是router定义时,需要指定参数的名字,这里假定为:value;

browserHistory.push(pathname: '/routerName/123');

如何获取到123呢?

通过this.props.params.value即可获取

传参方式2:

通过state传参,可以在页面跳转时,url中不显示参数;

browserHistory.push(pathname: '/routerName',state: { key: value });

跳转界面如何接收参数呢?

this.props.location.state.key便可以获得state中的key的value;

 

尝试了第二种方式发现不好用, 可能是router版本更新到4之后网上的内容太旧了

经过推敲之后发现可以这样

var data = {issueId:60};  
var path = {  
     pathname:'/IssueDetail.html',  
     state:data,  
}  
this.props.history.push(path);

 

然后接收的时候要带着withRouter

export default withRouter(IssueDetailDetails);

id:_this.props.location.state.issueId