React cloneElement example
Starting point for creating JSFiddles with React. This uses React with Addons.
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.js"></script>
<script src="https://fb.me/react-with-addons-0.14.0.js"></script>
<script src="https://fb.me/react-dom-0.14.0.js"></script>
<script src="https://facebook.github.io/react/js/jsfiddle-integration-babel.js"></script>
<div id="container"></div>
JavaScript 1.7
var Child = React.createClass({
render: function() {
return (<div onClick={() => this.props.doSomething(this.props.value)}>Click Me</div>);
}
});
var Parent = React.createClass({
doSomething: function(value) {
console.log('doSomething called by child with value:', value);
},
render: function() {
var childrenWithProps = React.Children.map(this.props.children, (child) => React.cloneElement(child, { doSomething: this.doSomething }));
return <div>{childrenWithProps}</div>
}
});
ReactDOM.render(
<Parent>
<Child value="1" />
<Child value="2" />
<Child value="supa dupa" />
</Parent>,
document.getElementById('container')
);