使用hashHistory
提供的react-router
向网址添加查询参数时出现问题:
路由器 - react-router@3.2.0
<Router history={hashHistory}>
<Route path="home" component={Home} />
<Route path="contact" component={Contact} />
<Redirect from="*" to="/home" />
</Router>
使用hashHistory
添加查询参数:
JS
hashHistory.push({
query: {
someParam: 'paramValue'
}
});
方案
我在/contact
页面上,点击后我想在网址中添加查询参数someParam
。我将上面的代码与hashHistory
一起使用。
此操作的结果是重定向到/home?someParam=paramValue
。
似乎只有push()
提供的方法query
会将新网址视为/
。因此,尽管如此,Redirect
将使用给出参数回家。
答案 0 :(得分:0)
<强>解决方案强>
为避免被重定向到/home
或任何其他设置为重定向页面的网页,需要为push()
方法提供路径名:
<强> JS 强>
const currentLocation = hashHistory.getCurrentLocation();
hashHistory.push({
pathname: currentLocation.pathname,
query: {
someParam: 'paramValue'
}
});
我们可以从hashHistory
getCurrentLocation()
方法中提取当前路径。