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:

the nine best FaunaDB alternatives for 2025

The 9 best FaunaDB alternatives for 2025

Looking for a FaunaDB alternative to migrate to? Examine nine other platforms you can use and factors to consider when choosing an alternative.

Nefe Emadamerho-Atori
May 13, 2025 ⋅ 7 min read
Techniques To Circulate And Record Knowledge In Engineering Teams

Techniques to circulate and record knowledge in engineering teams

From onboarding to bug tracking, these knowledge-sharing techniques keep your team aligned, reduce overhead, and build long-term technical clarity.

Marie Starck
May 12, 2025 ⋅ 4 min read
WebSockets Tutorial With Node And React

React WebSocket tutorial: Real-time messaging with WebSockets and Socket.IO

Learn how to build a real-time collaborative document editing app with a Node.js backend and React frontend using the WebSocket protocol.

Avanthika Meenakshi
May 12, 2025 ⋅ 15 min read
react view transitions and activity api tutorial

React View Transitions and Activity API tutorial: Animate an AirBnB clone

Explore the new React ViewTransition, addTransitionType, and Activity APIs by building an AirBnB clone project.

Emmanuel John
May 9, 2025 ⋅ 8 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