2016-11-17 216 views
0

我正在学习React,并在想如何创建动态路由 ,就像Angular中的部分页面一样。React嵌套路由

这里是我的最高水平App组件

import React from 'react'; 
import Header from '../common/Header'; 

export default class App extends React.Component { 

    render() { 
    return (
     <div> 
     <Header/> 
     //Render partial pages here e.g /dashboard, /users 
     </div> 
    ); 
    } 
} 

我的路线是这样的:

import React from 'react'; 
import {render} from 'react-dom'; 
import {Router, IndexRoute, Route, browserHistory} from 'react-router'; 
import App from './app/components/containers/App'; 
import Dashboard from './app/components/containers/Dashboard'; 
import Ecosystem from './app/components/ecosystem/Ecosystem'; 

import './assets/plugins/morris/morris.css'; 
import './assets/css/bootstrap.min.css'; 
import './assets/css/core.css'; 
import './assets/css/components.css'; 
import './assets/css/icons.css'; 
import './assets/css/pages.css'; 
import './assets/css/menu.css'; 
import './assets/css/responsive.css'; 

render(
    <Router history={browserHistory}> 

    <Route component={App}> 
     <IndexRoute component={Dashboard}/> 
     <Route path="/ecosystem/:name" component={Ecosystem}/> 
     <Route path="*" component={Dashboard}/> 
    </Route> 
    </Router>, 
    document.getElementById('root') 
); 

任何想法吗?

回答

2

这是行不通的?

import React from 'react'; 
import Header from '../common/Header'; 

class App extends React.Component { 

    render() { 
    return (
     <div> 
     <Header/> 
     {this.props.children} 
     </div> 
    ); 
    } 
} 

App.propTypes = { 
    children: React.PropTypes.node, 
}; 

export default App; 
+0

这样算下来,我在浏览器中'错误“孩子”得到这个错误在道具验证缺少反应/道具 - types' –

+0

嗯,可以eslint抛出一个错误,答案已经被编辑 – derp

+0

@derb哇 - 那男人!谢谢! –