2016-09-06 3 views
1

ユーザーがそのクエリ(Googleの機能に慣れているもの)に基づいて検索クエリを送信すると、ブラウザのアドレスを変更する必要があります。私がこれをすると、アドレスは正しく変更されますが、404ルートに私をリダイレクトします。アドレスバーに手動でテキストを入力すると、適切なページが表示されます。React-routerがクエリパラメータと共に使用されると404にリダイレクトされます

これは私のルートの一部です:

​​3210

は、ルータが2.6.1バージョンですリアクト:

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

ここでは私のコンポーネントの簡素化バージョンです。

答えて

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> 
     } 
    } 
関連する問題