React Base Fiddle (JSX)

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

by darul75

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">
    <!-- This element's contents will be replaced with your component. -->
</div>

JavaScript 1.7

const HOC = (Component, state, intervalFn) => class extends React.Component {
  constructor(props) {
    super(props);
    this.state = state;
  }
  
  componentWillMount() {
    this.intervals = [];
  }
  
  componentWillUnmount() {  	
    this.intervals.forEach(clearInterval);
  }
  
  componentDidMount() {
    this.setInterval(this.tick.bind(this), 1000);
  }
  
  setInterval() {
    this.intervals.push(setInterval.apply(null, arguments));
  }
  
  tick() {  	
    this.setState(intervalFn);
  }
  
  render() {    
    return <Component {...this.props} {...this.state} />
  }
};

class TestComponent extends React.Component {
	 constructor(props) {
    	super(props);    
   }

   render() {
    return (
        <p>
          React has been running for {this.props.seconds} seconds.
        </p>
    );
   }
}

const intervalFn = () => {
	return {seconds: this.state.seconds + 1};
};

const Wrapped = HOC(TestComponent, { seconds: 0 }, intervalFn);

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

setTimeout(() => {
  ReactDOM.render(
    <TestComponent />,
    document.getElementById('container')
  );
}, 5000);