FAQ: React Forms - Controlled vs Uncontrolled

This community-built FAQ covers the “Controlled vs Uncontrolled” exercise from the lesson “React Forms”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Web Development

Learn ReactJS: Part II

FAQs on the exercise Controlled vs Uncontrolled

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

I don’t understand what the following paragraph means in this exercise:

In React, when you give an <input /> a value attribute, then something strange happens: the <input /> BECOMES controlled. It stops using its internal storage. This is a more ‘React’ way of doing things.

In the previous exercise, we were instructed to insert

value={this.state.userInput}

into the <input />, but we were given no reason. And someone asked why in the community-built FAQ for the previous exercise, but no one has answered yet. Do we need to add the value attribute because we want <input /> to be “controlled”?