2016-09-06 71 views
1

当用户提交搜索查询时,我需要在浏览器中更改地址(Google所做的一些事情很熟悉)。当我这样做时,地址会正确更改,但会将我重定向到我的404路线。当我手动输入文本到地址栏时,我可以看到正确的页面。当与查询参数一起使用时,React-router重定向到404

这是我的路线的一部分:

... 
<Route path="some-address" component={MyComponent}> 
    <Route path=":query" /> 
</Route> 
... 

这里有一个简化版本我的组件:

​​3210

阵营路由器是2.6.1版本。

回答

0

使用的语法如下:

<Route path="/some-address" component={MyComponent}> 
    <Route path=":query" /> 
</Route> 
+0

没有帮助 – OlehZiniak

0

这是我设法解决这个问题:

@withRouter 
    @connect(...) 
    export default class MyComponent extends Component { 
     ... 
     render() { 
      return (
       <form onSubmit={(e) => { 
        e.preventDefault(); 
        this.props.router.push({ 
         pathname: this.props.location.pathname, 
         query: e.target.myInput.value && {search: e.target.myInput.value} 
        }) 
       }}> 
        <input name="myInput" /> 
       </form> 
     } 
    }