React Base Fiddle (JSX)

Starting point for creating JSFiddles with React. This uses React with Addons.

by Ross Allen

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.js"></script>
<script src="https://npmcdn.com/react@latest/dist/react-with-addons.js"></script>
<script src="https://npmcdn.com/react-dom@latest/dist/react-dom.js"></script>
<script src="https://facebook.github.io/react/js/jsfiddle-integration-babel.js"></script>

<div id="container">
    <!-- This element's contents will be replaced with your component. -->
</div>

JavaScript 1.7

/*
 * Clone a React element in order to attach a `ref` attribute to it.
 */

class Child extends React.Component {
	constructor(props) {
  	super(props);
    this.state = { value: 15 };
  }

	getValue() {
  	return this.state.value;
  }
  
  render() {
  	return <div>Child</div>;
  }
}

class Parent extends React.Component {
	getValue() {
  	return this.child.getValue();
  }
  
  render() {
  	return (
    	<div>
        {React.cloneElement(
        	this.props.children,
          { ref: (child) => { this.child = child; }}
        )}
        <button onClick={() => alert(this.getValue())}>getValue</button>
      </div>
    );
  }
}

ReactDOM.render(
  <Parent><Child /></Parent>,
  document.getElementById('container')
);