Pelo pouco que sei de React (sou fullstack há 3 anos), achei essa solução bem ruim na questão de performance. Digo isso por salvar o state em um objeto, o que faz com que o React tenha mais dificuldade de fazer diff em formulários grandes. Até onde eu sei, a melhor forma seria uma lib própria pra isso, como o react-hook-form.
Por favor, me corrijam se eu estiver errado