Create a Controlled Form
The last challenge showed that React can control the internal state for certain elements like input and textarea, which makes them controlled components. This applies to other form elements as well, including the regular HTML form element.
The MyForm component is set up with an empty form with a submit handler. The submit handler will be called when the form is submitted.
We've added a button which submits the form. You can see it has the type set to submit indicating it is the button controlling the form. Add the input element in the form and set its value and onChange() attributes like the last challenge. You should then complete the handleSubmit method so that it sets the component state property submit to the current input value in the local state.
Note: You also must call event.preventDefault() in the submit handler, to prevent the default form submit behavior which will refresh the web page. For camper convenience, the default behavior has been disabled here to prevent refreshes from resetting challenge code.
Finally, create an h1 tag after the form which renders the submit value from the component's state. You can then type in the form and click the button (or press enter), and you should see your input rendered to the page.
Tests
- Waiting: 1.
MyFormshould return adivelement which contains aformand anh1tag. The form should include aninputand abutton. - Waiting: 2. The state of
MyFormshould initialize withinputandsubmitproperties, both set to empty strings. - Waiting: 3. Typing in the
inputelement should update theinputproperty of the component's state. - Waiting: 4. Submitting the form should run
handleSubmitwhich should set thesubmitproperty in state equal to the current input. - Waiting: 5.
handleSubmitshould callevent.preventDefault - Waiting: 6. The
h1heading element should render the value of thesubmitfield from the component's state.
/** * Your test output will go here */