React Base Fiddle (JSX)
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">
<!-- This element's contents will be replaced with your component. -->
</div>
JavaScript 1.7
var Button = React.createClass({
getInitialState: function () {
return { color: this.context.color };
},
contextTypes: {
color: React.PropTypes.string
},
componentWillReceiveProps(nextProps, nextContext) {
console.log('nextContext', nextContext);
this.setState({ color: nextContext.color });
},
render: function() {
return (
<button style={{background: this.context.color}}>
{this.props.children} + {this.state.color}
</button>
);
}
});
var Message = React.createClass({
render: function() {
return (
<div>
{this.props.text} <Button>Delete</Button>
</div>
);
}
});
var MessageList = React.createClass({
getInitialState: function () {
return { color: "red" };
},
childContextTypes: {
color: React.PropTypes.string
},
getChildContext: function() {
return { color: this.state.color };
},
lol: function() {
this.setState({ color: "green" });
},
render: function() {
var children = this.props.messages.map(function(message) {
return <Message text={message.text} />;
});
return <div>
<button onClick={this.lol}>Click me to change color</button>
{children}</div>;
}
});
ReactDOM.render(<MessageList messages={[{text: "John"}]} />, document.getElementById('container'));