在链路react-router中添加查询参数

时间:2017-02-24 05:10:17

标签: reactjs react-router

我正在尝试在我的网址中添加查询参数,但遇到了问题。对于视觉效果,我将Link对象放在onSubmit中,但我知道这是不允许的。

<form onSubmit={<Link to={{ pathname: '/me', query: { showAge: true } }}/>}>
 .....
</form>

2 个答案:

答案 0 :(得分:2)

使用browserHistory/hashHistoryWrite.push(),进入特定路线,onSubmit来电。将所有值放在要传递的查询中,如下所示:

onSubmit={()=>hashHistory.push({
                 pathname: '/me',
                 query: {a: "a", b: "b", "c": c}
              })
};

onSubmit={()=>browserHistory.push({
                 pathname: '/me',
                 query: {a: "a", b: "b", "c": c}
              })
};

答案 1 :(得分:0)

我通过以下方法解决了该问题:

let clientId = 2;

this.props.history.push({
    pathname: '/client',
    search: "?" + new URLSearchParams({clientId: clientId}).toString()
})

this.props.history.push('/client?clientId=1')

我将上面的代码放入一个函数中,并将其绑定到构造函数中,因此您可以访问propsprops.history

constructor(props){
    super(props)
    this.onSubmitClick = this.onSubmitClick.bind(this)
}

onSubmitClick(){
    this.props.history.push('/client?clientId=1')
}

<form onSubmit={this.onSubmitClick}>

</form>

您可能还需要将组件包装在withRouter装饰器中,例如。 export default withRouter(Component);