用{this.props.children}传递{... this.state}

时间:2016-07-15 18:55:55

标签: javascript reactjs react-router

大家好,谢谢你的时间。

我在React.js上看到lynda.com的教程。 但是,它使用了旧版本的React。 他的代码:

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

但我使用新版本的React 15.2.1和React-router 2.5.2。 我不知道如何通过{this.props.children}

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

谢谢大家

2 个答案:

答案 0 :(得分:2)

为了将一些道具传递给{this.props.children},您可以使用React.cloneElement。结果元素将包含原始元素的道具,新道具合并为浅。

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

答案 1 :(得分:-1)

它又是我,我必须添加一个发射 在教程中,使用旧版本的React。

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

现在,如何添加emit?

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

谢谢,