diff --git a/packages/@react-aria/select/src/HiddenSelect.tsx b/packages/@react-aria/select/src/HiddenSelect.tsx index 61e9455b571..1029f53eb8e 100644 --- a/packages/@react-aria/select/src/HiddenSelect.tsx +++ b/packages/@react-aria/select/src/HiddenSelect.tsx @@ -145,6 +145,8 @@ export function HiddenSelect(props: Hidde let inputRef = useRef(null); let {containerProps, selectProps} = useHiddenSelect({...props, selectRef: state.collection.size <= 300 ? selectRef : inputRef}, state, triggerRef); + let values: (Key | null)[] = Array.isArray(state.value) ? state.value : [state.value]; + // If used in a
, use a hidden input so the value can be submitted to a server. // If the collection isn't too big, use a hidden . @@ -167,6 +169,10 @@ export function HiddenSelect(props: Hidde ); } })} + {/* The collection may be empty during the initial render. */} + {/* Rendering options for the current values ensures the select has a value immediately, */} + {/* making FormData reads consistent. */} + {state.collection.size === 0 && name && values.map((value, i) =>