2016-09-19 6 views
0

と一致していませんリアクトURLからに、不要な」プレフィックスは、ルータが、私は私のルータは、以下の構成で正常に動作していな状況に直面していますすべてのオプションパラメータ

現在のURL - >理想のURL

ブログ/リスト/サッカー/ワールドカップ - >ブログ/サッカー/ワールドカップ

ブログ/リスト/サッカー - >ブログ/サッカー

ブログ/記事/サッカー/ 10 - >ブログ/サッカー/ 10

は、だから私は

オプションのすべてのパラメータを維持するために、私のルートを変更しようとして失敗しました
<Route path="/" component={Blog}> 
    <Route path="(/:category)(/:subcat)" component={ArticleList} /> 
    <Route name=":category(/:subcat)/:id" component={ArticlePage} /> 
</Route> 

反応ルータを使用して説明したようにURLに一致する方法はありますか?

+0

が、簡易版にリダイレクトする。 – feychou

答えて

0

あなたは、単にそれは私がルートにblog前に置かれているこの

<Route path="blog" component={Blog}> 
    <IndexRoute component={ BlogComponent } /> 
    <Route path=":category" component={ ArticleCategoryList } /> 
    <Route path=":category/:subcat" component={ ArticleSubCategoryList } /> 
</Route> 

のように持つことができます。

  • IndexRouteは、それがインデックスのルートとして機能し、/ブログルートと一致します。
  • :categoryブログ/サッカーまたはブログ/任意の-スポーツは
  • :category/:subcatが一致すると一致します両方ブログ/サッカー/ワールドカップブログ/サッカー/ 10

    あなたがする必要がありますこれはsubcategoryidの両方に一致するため、ここでは注意してください。 id/subcategoryかどうかにかかわらず、ルートのタイプを検証できる関数/ミドルウェアを書くことができます。あなたが現在のルートを維持する必要がある場合は、[ `` ](https://github.com/ReactTraining/react-router/blob/master/docs/API.md#redirect)を使用することができます

関連する問題