2020-05-18
1497
#react
Kristofer Selbekk
18674
May 18, 2020 ⋅ 5 min read

Creating forms in React in 2020

Kristofer Selbekk Bekker. Bulldog owner. Dad. React enthusiast. 🎩🥂🍔

Recent posts:

featured image tsx extension

What is the difference between a .ts and .tsx file extension?

Examine the differences between the .ts and .tsx file types, their use cases, and best practices for a React TypeScript project.

Hussain Arif
Mar 27, 2025 ⋅ 8 min read
How To Use Try...catch For Error Handling In JavaScript

How to use try...catch for error handling in JavaScript

Learn how to use JavaScript try…catch for error handling, including syntax, advanced scenarios, and managing asynchronous code.

Ivy Walobwa
Mar 27, 2025 ⋅ 5 min read
Designing For Instant Feedback- The Doherty Threshold In UX

Designing for instant feedback: The Doherty Threshold in UX

The Doherty Threshold suggests that when feedback occurs within this timeframe, users feel more in control and remain engaged.

Chidera Nwankwagu
Mar 26, 2025 ⋅ 4 min read
what is pair programming

What is pair programming – and should you try it?

Learn what pair programming is, its benefits, and how real-world implementation can improve your software development process.

Andrew Evans
Mar 26, 2025 ⋅ 6 min read
View all posts

13 Replies to "Creating forms in React in 2020"

  1. Nice post, wish when I read all these forms in react blogs though that they’d include nice ways the include validation

  2. Great article 👍
    There is a small typo in the first example. You entered username.. probably ment email

  3. I think, the approach you used for get data using FormData, it’s antipattern in react. Please see controlled components vs uncontrolled components.

  4. I think what the author is trying to say throughout the article is that in simple cases, the overhead of controlled components doesn’t bring any additional benefits. Just using uncontrolled components alone isn’t an anti pattern.

  5. Hi ,
    I use a custom hook, but the problem is that I also have a large list in the component. When I do the onChange operation, this list becomes re render again and greatly reduces performance.

  6. Your code works fine until a checkbox is added. The formData doesn’t seem to return a true/false value.

    const formData = new FormData(e.target as HTMLFormElement);

    The formData.get(‘registerMe’) returns ‘on’ instead of true/false. I cannot think of any other way except to access the checkbox value directly:

    e.target.elements[‘registerMe’].checked

    So wouldn’t it be better to access the elements directly rather than through the FormData? You already have a reference to the form and can access the values.

Leave a Reply