diff --git a/src/renderers/dom/client/wrappers/ReactDOMInput.js b/src/renderers/dom/client/wrappers/ReactDOMInput.js index 1b649f828d4ec..dfa860a2dbe15 100644 --- a/src/renderers/dom/client/wrappers/ReactDOMInput.js +++ b/src/renderers/dom/client/wrappers/ReactDOMInput.js @@ -67,6 +67,10 @@ var ReactDOMInput = { // Make sure we set .step before .value (setting .value before .step // means .value is rounded on mount, based upon step precision) step: undefined, + // Make sure we set .min & .max before .value (to ensure proper order + // in corner cases such as min or max deriving from value, e.g. Issue #7170) + min: undefined, + max: undefined, }, DisabledInputUtils.getHostProps(inst, props), { defaultChecked: undefined, defaultValue: undefined, diff --git a/src/renderers/dom/client/wrappers/__tests__/ReactDOMInput-test.js b/src/renderers/dom/client/wrappers/__tests__/ReactDOMInput-test.js index ecd83e69f3627..797841df73e41 100644 --- a/src/renderers/dom/client/wrappers/__tests__/ReactDOMInput-test.js +++ b/src/renderers/dom/client/wrappers/__tests__/ReactDOMInput-test.js @@ -742,7 +742,7 @@ describe('ReactDOMInput', function() { ); }); - it('sets type and step before value always', function() { + it('sets type, step, min, max before value always', function() { if (!ReactDOMFeatureFlags.useCreateElement) { return; } @@ -769,10 +769,10 @@ describe('ReactDOMInput', function() { 'set data-reactroot', 'set type', 'set step', - 'set value', 'set min', 'set max', 'set value', + 'set value', 'set checked', 'set checked', ]);