42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
|
/**
|
||
|
* Copyright 2013-present, Facebook, Inc.
|
||
|
* All rights reserved.
|
||
|
*
|
||
|
* This source code is licensed under the BSD-style license found in the
|
||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
var ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');
|
||
|
|
||
|
var warning = require('fbjs/lib/warning');
|
||
|
|
||
|
var didWarnValueNull = false;
|
||
|
|
||
|
function handleElement(debugID, element) {
|
||
|
if (element == null) {
|
||
|
return;
|
||
|
}
|
||
|
if (element.type !== 'input' && element.type !== 'textarea' && element.type !== 'select') {
|
||
|
return;
|
||
|
}
|
||
|
if (element.props != null && element.props.value === null && !didWarnValueNull) {
|
||
|
process.env.NODE_ENV !== 'production' ? warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using the empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
|
||
|
|
||
|
didWarnValueNull = true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var ReactDOMNullInputValuePropHook = {
|
||
|
onBeforeMountComponent: function (debugID, element) {
|
||
|
handleElement(debugID, element);
|
||
|
},
|
||
|
onBeforeUpdateComponent: function (debugID, element) {
|
||
|
handleElement(debugID, element);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
module.exports = ReactDOMNullInputValuePropHook;
|