If you work with React, you must have encountered this warning message: Warning: A component is changing an uncontrolled input of type text to be controlled … Regard to main React’s documentation, you can implement forms with controlled or uncotrolled form elements, but what is the main difference between these two types? Controlled Component: A controlled component gets value and onChange event from props and notify other components about changes with callbacks: