Fix: Treat Symbol and function values as empty string in ReactDOMInput #33949
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes how
<input>
elements handlevalue
anddefaultValue
when they are provided as aSymbol
orfunction
. Previously, these values were incorrectly rendered asnull
or other unintended values. Now, they are consistently treated as empty strings (""
), aligning with expected HTML behavior.Changes
updateInput
andinitInput
functions withinReactDOMInput.js
to convertSymbol
andfunction
values to""
.value
assignments.ReactDOMInput-test.js
.Why
This fix resolves inconsistencies between React's internal input handling and browser behavior. It also ensures that controlled and uncontrolled inputs remain predictable when receiving unexpected value types.
Testing
packages/react-dom/src/__tests__/ReactDOMInput-test.js
pass.yarn test ReactDOMInput
with all 124 tests passing.Additional Notes