Use FormData
submitter
parameter
#29028
Open
+27
−77
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
Fixes #29018
Rather than continuing to maintain/fix a partial polyfill (e.g. #28056), just pass the
submitter
to theFormData
constructor, since it is now widely available. This ensures that the form data is populated consistently with a native form submission, and lets us remove a whole lot of code. This is a followup to this discussion over a year ago: https://github.com/facebook/react/pull/26674/files/5a7629ddb4f22072e37ba1ae581977ce03bdf288#r1178495317Elaborating on that, if we're concerned about browsers that don't support it, it's important to note that:
SubmitEvent.submitter
, which means the existing approach won't work for them eitherFormData
submitter
can easily be polyfilled (as canSubmitEvent.submitter
) for developers that care about named submit buttons working correctly in old browsersHow did you test this change?
Updated an existing test to more fully cover
submitter
serialization, and ranyarn test
andyarn test --prod
successfully.