Problem
import React from 'react'

function Form () {
  ...

  const handleChange = (e) => {
    setData((user) => ({
      ...user,
      name: e.target.value
    }))
  }

  ...
}
Solution

As mentioned above, React 17 removes “Event Pooling”. This is an example of where Event Pooling could go wrong with React 16. Because React used to recycle synthetic event objects, e.target.value would be gone by the time we wanted to access it. To fix this we can either upgrade to React 17 (RC), call .persist() on the event, or do as we’re doing in the code below.

...

const handleChange = (e) => {
 const name = e.target.value

 setData((user) => ({
   ...user,
   name
 }))
}

...