我有以下的路由器配置:陣營this.props.children是不確定的
ReactDOM.render((
<Router history={History.createHistory()}>
<Route path="/" component={Page}>
<IndexRoute component={OverviewDashboard}/>
<Route path="/:env" component={Env}>
<IndexRoute component={EnvOverview}/>
</Route>
</Route>
</Router>
), document.getElementById('page'));
及以下組件定義:
const Page = React.createClass({
render: function() {
return (
<main>
<Header />
{this.props.children}
</main>
);
}
});
const OverviewDashboard = React.createClass({
render: function() {
return (
<section>
<Env name="Env1" />
<Env name="Env2" />
</section>
);
}
});
const Env = React.createClass({
render: function() {
return (
<section className="env">
<header>{this.props.params && this.props.params.env || this.props.name}</header>
{this.props.children}
</section>
);
}
});
const EnvOverview = React.createClass({
render: function() {
return (
<div>
<Jobs env={this.props.params.env}/>
<Runtime env={this.props.params.env}/>
</div>
)
}
});
我ommitted的<Header>, <Jobs>
的定義和<Runtime>
因爲他們不相關。
當我去/
鏈接{this.props.children}
在<Env>
組件未定義,因此不呈現。
但是,當我去「/ Env1」{this.props.children}
設置爲<EnvOverview>
正確並顯示。
我是新來的React,可能我錯誤地使用了路由組件。有人可以解釋如何在訪問/
鏈接時呈現<EnvOverivew>
?
謝謝,你的回答是非常有益的。現在我需要了解什麼和何時設置'{this.props.children}'。 – Eugen