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 ||