hydrateSelect() — react Function Reference
Architecture documentation for the hydrateSelect() function in ReactDOMSelect.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD 8de7b720_ae26_79c7_6581_f1ecd5cf91a0["hydrateSelect()"] 45a4825c_28bb_dfd1_ecd2_0adf3836cafc["ReactDOMSelect.js"] 8de7b720_ae26_79c7_6581_f1ecd5cf91a0 -->|defined in| 45a4825c_28bb_dfd1_ecd2_0adf3836cafc 14e1dad9_019e_0b6b_45f9_989dc6db3084["toString()"] 8de7b720_ae26_79c7_6581_f1ecd5cf91a0 -->|calls| 14e1dad9_019e_0b6b_45f9_989dc6db3084 7404ee30_0cd4_7886_2806_324f301962c4["getToStringValue()"] 8de7b720_ae26_79c7_6581_f1ecd5cf91a0 -->|calls| 7404ee30_0cd4_7886_2806_324f301962c4 style 8de7b720_ae26_79c7_6581_f1ecd5cf91a0 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/react-dom-bindings/src/client/ReactDOMSelect.js lines 161–212
export function hydrateSelect(
element: Element,
value: ?string,
defaultValue: ?string,
multiple: ?boolean,
): void {
const node: HTMLSelectElement = (element: any);
const options: HTMLOptionsCollection = node.options;
const propValue: any = value != null ? value : defaultValue;
let changed = false;
if (multiple) {
const selectedValues = (propValue: ?Array<string>);
const selectedValue: {[string]: boolean} = {};
if (selectedValues != null) {
for (let i = 0; i < selectedValues.length; i++) {
// Prefix to avoid chaos with special keys.
selectedValue['$' + selectedValues[i]] = true;
}
}
for (let i = 0; i < options.length; i++) {
const expectedSelected = selectedValue.hasOwnProperty(
'$' + options[i].value,
);
if (options[i].selected !== expectedSelected) {
changed = true;
break;
}
}
} else {
let selectedValue =
propValue == null ? null : toString(getToStringValue(propValue));
for (let i = 0; i < options.length; i++) {
if (selectedValue == null && !options[i].disabled) {
// We expect the first non-disabled option to be selected if the selected is null.
selectedValue = options[i].value;
}
const expectedSelected = options[i].value === selectedValue;
if (options[i].selected !== expectedSelected) {
changed = true;
break;
}
}
}
if (changed) {
// If the current selection is different than our initial that suggests that the user
// changed it before hydration. Queue a replay of the change event.
queueChangeEvent(node);
}
}
Domain
Subdomains
Source
Frequently Asked Questions
What does hydrateSelect() do?
hydrateSelect() is a function in the react codebase, defined in packages/react-dom-bindings/src/client/ReactDOMSelect.js.
Where is hydrateSelect() defined?
hydrateSelect() is defined in packages/react-dom-bindings/src/client/ReactDOMSelect.js at line 161.
What does hydrateSelect() call?
hydrateSelect() calls 2 function(s): getToStringValue, toString.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free