This should be illegal:
ReactDOM.render(
<input value="foo" defaultValue="foo1" onChange={function(){}} />,
document.getElementById('container')
);
Users need to decide if they are using controlled or uncontrolled inputs. We should warn if both properties are specified.