2017-01-24 14 views
0

私はリアクタ/ Redux /ルータを使用していますが、これは本当に単なるルータの質問であり、答えが見つからないようです。基本的には、私のアプリはURLに「#search」ハッシュがある場合にのみ起動します。さもなければ何もしません。リアクタ・ルータ - デフォルト・ルートなし

次のようなものを使用すると、ルートURL「/」に移動するとエラーが発生します(ルートに一致しません)。あなたは、Webアプリケーションへのデフォルトのエントリー・ポイントであるルート'/'、のためのルートを提供していないためだ

ReactDOM.render(
    <Provider store={store}> 
    <Router history={browserHistory}> 
     <Route path="#search" component={HelloWorldContainer} /> 
    </Router> 
    </Provider>, 
    document.querySelector('.body-wrap'), 
); 

すべてのヘルプ感謝...

答えて

0

。ルート'/'のルートを指定しない理由はわかりませんが、React Routerは一致しないルートのエラーをスローし続けます。指定したものと一致しないルートのコンポーネント全体をキャッチオールとして提供することができます。そうですね:

<Route path='*' component={ErrorPage}/> 

また、path='#search'へのリクエストは正確に一致する必要があります。したがって、上記のcatch-allルートがない限り、/#search123へのリクエストでエラーが発生します。

+0

私は明らかになっているのか分かりませんが、キース、または誤解されているかもしれませんが、「#search」が存在する場合にのみアプリを起動したいのですが、そうでない場合は、 。 たとえば、 '/ blah'ページを入力した場合、サーバーをレンダリングするだけですが、 '/ blah#search'に行った場合、ブラウザはReactコンポーネントがレンダリングされたページを表示します。 –

+0

私の謝罪私はあなたが誤解していると思う。おそらく、[クエリ文字列とパス名にアクセスするためのReact-Router Glossary](https://github.com/ReactTraining/react-router/blob/master/docs/Glossary.md)をチェックアウトする必要があります。 –

関連する問題