2016-07-08 6 views
1

FluxとReact Routersを教えるためのアプリを書いたので、ネストされたルートにはまってしまいます。私は公園のリストを持っています。公園の1つをクリックすると、ショーページが表示されます。これは、次のようにネストされたルートを持っているとうまくいきます。IndexRouteのネスト

const appRouter = (
    <Router history={ hashHistory }> 
    <Route path="/" component={ App }> 
     <IndexRoute component={ AppIndex }/> 
     <Route path="parks/:parkId" component={ ParkShow }/> 
    </Route> 
    </Router> 
) 

しかし、それは私が望むものではありません。 AppIndexページでクリックした公園に関する情報を表示したいと思います。 「:[反応-ルータを表示]ロケーション警告 『公園/ 2』任意のルートと一致しませんでした」

そして - - 「警告:私が得る

const appRouter = (
    <Router history={ hashHistory }> 
    <Route path="/" component={ App }> 
     <IndexRoute component={ AppIndex }> 
     <Route path="parks/:parkId" component={ ParkShow }/> 
     </IndexRoute> 
    </Route> 
    </Router> 
) 

:これは私がその目標を達成するために持っているものです[反応-ルータ]ロケーション「/公園/ 2」インデックスページが間違った道1以上

const appRouter = (
    <Router history={ hashHistory }> 
    <Route path="/" component={ App }> 
     <IndexRoute component={ AppIndex }/> 
     <Route path="parks/:parkId" component={ ParkShow }/> 
    </Route> 
    </Router> 
) 

なるようにアプリケーションを設計し 唯一の正しい方法があるの内側にどんなルート」

+0

解決策の1つは、AppShareコンポーネントの上部にAppIndexコンポーネントを追加することです。それは私には私が探している振る舞いを与えますが、それは私にはハッキリですね。私は、ルート自体からこの行動を得る方法がなければならないように感じる。 –

答えて

2

ルートと一致しませんでしたa AppIndexの内容をAPPに移動し、APPコンポーネントでthis.props.childrenを使用します。 AppIndexまたはParkShowを表示する必要があります

+0

これは私の希望する動作を生成しません。 希望の動作は、AppIndexのコンテンツがホームページにアクセスして表示され、ParkShowに永続するが、App内の他のページには持続しないようにするためです。 –

+0

私はここにフォローアップの質問を投稿しました:http://stackoverflow.com/questions/38276787/how-to-nest-react-routes-in-homepage –