var RecursiveChildComponent = React.createClass({ render() { return <div> {this.recursiveCloneChildren(this.props.children)} </div> }, recursiveCloneChildren(children) { return React.Children.map(children, child => { if(!_.isObject(child)) return child; var childProps = {someNew: "propToAdd"}; childProps.children = this.recursiveCloneChildren(child.props.children); return React.cloneElement(child, childProps); }) } })