2016-07-15 11 views
1

Hallo allerseits und danke für deine Zeit.pass {... this.state} mit {this.props.children}

Ich sehe ein Tutorial mit lynda.com für React.js. Aber es verwendete eine alte Version von React. Sein Code:

render: function(){ 
    return (
    <div> 
     <Header title={this.state.title} status={this.state.status}/> 
     <RouteHandler {...this.state} /> 
    </div> 
    ) 
} 

aber ich benutze eine neue Version 15.2.1 Reagieren und Reagieren-Router 2.5.2. Und ich weiß nicht, wie passieren {...} this.state mit {this.props.children}

render: function(){ 
    return (
    <div> 
     <Header title={this.state.title} status={this.state.status}/> 
     {this.props.children} 
    </div> 
    ) 
} 

Vielen Dank, jeder

+0

Mögliches Duplikat [Reagieren Router und this.props.children - wie Zustand zu übergeben this.props.children] (http://stackoverflow.com/questions/35835670/react -router-and-this-props-children-how-to-pass-state-to-this-props-children) – azium

+0

Können Sie einen Link mit Ihrem Code in JSFddle oder Codepen posten. Es ist schwer von oben zu verstehen Beispiel. –

Antwort

1

um einige Requisiten {this.props.children} Sie weitergeben, kann React.cloneElement verwenden. Das resultierende Element wird die Requisiten des ursprünglichen Elements haben, wobei die neuen Requisiten flach zusammengeführt werden.

render: function(){ 
    return (
    <div> 
     <Header title={this.state.title} status={this.state.status}/> 
     {React.cloneElement(this.props.children,this.state)} 
    </div> 
    ) 
} 
+0

Perfekt, danke. – Rifton007

0

Es ist mir wieder, ich habe ein emit In Tutorial hinzuzufügen, mit alten Version von React.

<RouteHandler **emit={this.emit}** {...this.state}/> 

Nun, wie zu emittieren?

{React.cloneElement(this.props.children, this.state)} //where add emit ? 

Danke,

Verwandte Themen