React without `setState`
by jamesknelson
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-15.2.0.js"></script>
<script src="https://fb.me/react-dom-15.2.0.js"></script>
<script src="https://facebook.github.io/react/js/jsfiddle-integration-babel.js"></script>
<div id="react-app">
<!-- This element's contents will be replaced with your component. -->
</div>
JavaScript 1.7
var CommentForm = React.createClass({
propTypes: {
value: React.PropTypes.object.isRequired,
onChange: React.PropTypes.func.isRequired,
},
handleChange(field, e) {
this.props.onChange(Object.assign(
this.props.value,
{ [field]: e.target.value }
))
},
render() {
return (
React.createElement('div', {},
React.createElement('input', {
placeholder: "Name",
value: this.props.value.name,
onChange: this.handleChange.bind(this, 'name'),
}),
React.createElement('br'),
React.createElement('input', {
placeholder: "Message",
value: this.props.value.message,
onChange: this.handleChange.bind(this, 'message'),
})
)
)
}
})
function render(value) {
ReactDOM.render(
React.createElement(CommentForm, {
value: value,
onChange: render,
}),
document.getElementById("react-app")
)
}
render({
name: "James",
message: "",
})