The library for web and native user interfaces.
Stringify `value` in ReactDOMInput / ChangeEventPlugin
This fixes two bugs related to string-casting in React: # Setting `<input value={0} />` would use an empty `value` because `0` is falsey. # Using `onChange` and `setState` with non-strings could lead to an infinite loop. The latter is possible with controlled inputs when: - User changes input value. - `onpropertychange` fires. - `ChangeEventPlugin` dispatches `onChange`. - A handler responds via `this.setState` with a non-string value (e.g. a number). - The input re-renders and re-sets `value`. - The new `value` is not a string, but the current `value` (read from the element) is cast to a string automatically by the browser. - This triggers another `onpropertychange`. - `ChangeEventPlugin` dispatches another `onChange`. - ...