2015-11-04 67 views
0

我很难搞清楚如何使用react路由器v1.0在嵌套组件中安装组件。我有一个加载布局组件的应用程序组件。布局组件然后加载两个组件,菜单和内容。我想根据路线在内容组件中加载不同的组件。React Router - 在嵌套组件中安装组件

以下是我的示例代码。

var App = React.createClass({ 
    render : function(){ 
     return <div><Layout/></div> 
    } 
}); 

var Layout = React.createClass({ 
    render : function(){ 
     return(
      <div> 
       <Menu/> 
       <Content/> 
      </div> 
     ) 
    } 
}); 

var Content = React.createClass({ 
    render : function(){ 
     return <div>This is where i want to mount my components</div> 
    } 
}); 

var List = React.createClass({ 
    render : function(){ 
     return <div>some list goes here</div> 
    } 
}); 

var Graph = React.createClass({ 
    render : function(){ 
     return <div>some graph goes here</div> 
    } 
}); 

<Router> 
    <Route path='/' component={App}> 
     <Route path='/list' component={List}/> 
     <Route path='/graph' component={Graph}/> 
    </Route> 
</Router> 

任何帮助/指针将不胜感激。

谢谢

回答

1

它和基本的React组件一样。当你嵌套它们时,它们可以在this.props.children上获得。所以你最终会得到这样的结果:

var App = React.createClass({ 
    render : function(){ 
     return <div><Layout>{this.props.children}</Layout></div> 
    } 
}); 

var Layout = React.createClass({ 
    render : function(){ 
     return(
      <div> 
       <Menu/> 
       <Content>{this.props.children}</Content> 
      </div> 
     ) 
    } 
}); 

var Content = React.createClass({ 
    render : function(){ 
     return <div>{this.props.children}</div> 
    } 
}); 
+0

Do'h!当然,有时你只需要第二双眼睛。谢谢蒂姆 – Auz