В настоящее время я изучаю React router v1.0, и у меня возникает путаница с передачей состояния дочерним компонентам в качестве свойств.Передача состояния дочерним компонентам как свойства
App.js
getInitialState: function(){
return {
status: 'disconnected',
title: ''
},
...
,
render: function(){
return (
<div>
<Header title={this.state.title} status={this.state.status}/>
{React.cloneElement(this.props.children,{title:this.state.title,status:this.state.status})}
</div>
);
Client.js
var routes = (
<Router history={hashHistory}>
<Route path="/" component={App}>
<IndexRoute component={Audience} />
<Route path ="speaker" component={Speaker} />
</Route>
</Router>
);
Audience.js
render: function(){
return(
<div>
<h1>Audience</h1>
{this.props.title || "Welcome Audience"}
</div>
);
}
Speaker.js
render: function(){
return(
<div>
<h1>Speaker:</h1>
{this.props.status || "Welcome Speaker!"}
</div>
);
}
Вместо того, чтобы сделать это:
{React.cloneElement(this.props.children,{title:this.state.title,status:this.state.status})}
Есть ли что-то подобное, как это для React.cloneElement с помощью https://facebook.github.io/react/docs/jsx-spread.html оператора:
<RouteHandler {...this.state}/>
TLDR; В принципе, я хотел бы передать все состояние своим компонентам маршрута вместо их индивидуального определения.
Любая помощь была бы принята с благодарностью!
'Object.assign ({}, this.state)' – azium