React Base Fiddle (JSX)
Starting point for creating JSFiddles with React. This uses React with Addons.
by xufocoder
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="reactContainerElement"></div>
JavaScript 1.7
class Root extends React.Component {
constructor() {
super();
this.state = {
locale: 'en'
};
}
getChildContext() {
const locale = this.state.locale;
return {
setLocale: locale => this.setState({
locale: locale
}),
locale: locale
}
}
render() {
return <Parent />
}
}
Root.childContextTypes = {
setLocale: React.PropTypes.func.isRequired,
locale: React.PropTypes.string.isRequired
};
class Parent extends React.Component {
render() {
return <Child />;
}
}
class Child extends React.Component {
render() {
const {setLocale, locale} = this.context;
const setRussianLocale = () => setLocale('ru');
return (
<div>
<div>Application state is '{locale}'!</div>
<button onClick={setRussianLocale}>
Set russian locale
</button>
</div>
);
}
}
Child.contextTypes = {
setLocale: React.PropTypes.func.isRequired,
locale: React.PropTypes.string.isRequired
}
ReactDOM.render(
<Root />,
document.getElementById('reactContainerElement')
);