From 5200547100cb8505eb293f84da53762b7c482fc2 Mon Sep 17 00:00:00 2001 From: Utkarsh Kukreti Date: Thu, 2 Apr 2020 00:28:07 +0530 Subject: [PATCH] Do not warn when a controlled input has `onInput` handler. (#18189) `onInput` behaves the same as `onChange` for controlled inputs as far as I know, so React should not print the following warning when `onInput` is present. > Failed prop type: You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`. --- packages/react-dom/src/__tests__/ReactDOMInput-test.js | 4 ++++ .../react-dom/src/shared/ReactControlledValuePropTypes.js | 1 + 2 files changed, 5 insertions(+) diff --git a/packages/react-dom/src/__tests__/ReactDOMInput-test.js b/packages/react-dom/src/__tests__/ReactDOMInput-test.js index bd008a200e..391e14fe01 100644 --- a/packages/react-dom/src/__tests__/ReactDOMInput-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMInput-test.js @@ -115,6 +115,10 @@ describe('ReactDOMInput', () => { ReactDOM.render(, container); }); + it('should not warn with value and onInput handler', () => { + ReactDOM.render( {}} />, container); + }); + it('should properly control a value even if no event listener exists', () => { let node; diff --git a/packages/react-dom/src/shared/ReactControlledValuePropTypes.js b/packages/react-dom/src/shared/ReactControlledValuePropTypes.js index 994419ba0c..60df6ab2e5 100644 --- a/packages/react-dom/src/shared/ReactControlledValuePropTypes.js +++ b/packages/react-dom/src/shared/ReactControlledValuePropTypes.js @@ -33,6 +33,7 @@ if (__DEV__) { if ( hasReadOnlyValue[props.type] || props.onChange || + props.onInput || props.readOnly || props.disabled || props[propName] == null ||