Come on, ref!
In the typical request-response lifecycle of an HTML page, submitted forms just dissolves into the impermanence of the web. In our case — where forms are submitted without a redirect — we have to reset forms on submit. Otherwise data will stick around, confusing the user.
In addition to the reset input — from yesterday — form elements have an API for imperatively resetting forms: formElement.reset()
.
We can call reset() on the target element of our onSubmit
event handler: event.target.reset()
;
Easy-peasy. We’ve now reset the form on submit!
Take it home
We’ve reset this form, sure. But we’ve done it in a way that React has no control over — it’s all just DOM operations thru and thru.
If we want to reset the form in response to an event elsewhere in our app, we need to use a React ref — React’s tool for exposing direct access to the DOM. Open this CodeSandbox and change the reset functionality to use a ref instead of the event directly. You’ll find instructions in the comments.