2017-08-03 32 views
0

親コンポーネント(index.js)レンダリングいないV4リアクトは、ルータが、私は私のルートは、次のように設定している

render() { 
    return (
     <div className='wrapper main-app-wrapper'> 
     <Header toggleSidebar={this.toggleSidebar}> 
      <AuthHeaderActions /> 
     </Header> 
     <div className='content-wrapper'> 
      {this.props.children} 
     </div> 
     <LeftMenu /> 
     <Footer /> 
     </div> 
    ); 
    } 

をするとIルート/ダッシュボードに移動すると、ヘッダー、フッター、および左メニューが正しくレンダリングされます。

私がルート/ダッシュボード/会場に当たったとき、VenuesPage内にあるコンテンツだけがレンダリングされます。ヘッダー、フッター、および左メニューは描画されません。ルートのネストに問題があります。私はreact-router-dom-v4を使用しています。

答えて

1

あなたは、あなたが今、あなたはVenuesPageはの子になりたいという

index.js

<BrowserRouter history={browserHistory}> 
    <Switch> 
     <Route exact path="/" component={RootContainer} /> 
     <Route exact path="/login" component={RedirectToApp(LoginPage)} /> 
     <Route path="/dashboard" component={RequiresAuth(AppContainer)} /> 

    </Switch> 
</BrowserRouter> 

へのルートを変更することができますreact-router v4

であなたのコンポーネント内でRoutesを追加することができますAppContainer

render() { 
    return (
     <div className='wrapper main-app-wrapper'> 
     <Header toggleSidebar={this.toggleSidebar}> 
      <AuthHeaderActions /> 
     </Header> 
     <div className='content-wrapper'> 
      {this.props.children} 
      <Route exact path="/dashboard/venues" component={VenuesPage} /> 
     </div> 
     <LeftMenu /> 
     <Footer /> 
     </div> 
    ); 
    } 
+0

これを実行すると、ルート/ダッシュボード/会場に出たときに空のページになります。基本的には、このルートは見つかりません。私はv4の初心者ですのでここで少し混乱しています。 –

+1

/ダッシュボードのルート –

+0

から正確な属性を削除してもよろしいですか?これは完璧に動作しています。ありがとう。 –

2

あなたがダッシュボード

<Route exact path="/dashboard" component={RequiresAuth(AppContainer)}> 
    <Route exact path="/venues" component={VenuesPage}/> 
</Route> 

EDIT

NB内会場ルートを配置する必要があります!コメント(と他の回答)の状態として、これはV4ではもう有効ではありません。

+0

のように、AppContainerのコンポーネント内に追加することができます。警告:は同じルートで使用しないでください。 <ルートの子>は無視されます。子ルートはここでは機能しません。 –

+1

反応ルータv4ではあまり意味がありません。しかし、それはv3またはそれ以前のバージョンで動作します –

関連する問題