Next.js, fieldErrors vs formError
Одна из типовых проблем формы в Next.js возникает не в submit и не в схеме валидации, а в формате ошибки. Пока все сообщения сваливаются в одну переменную, интерфейс перестаёт различать две разные вещи, ошибка конкретного поля и ошибка самой операции.
Если title пустой или не проходит по длине, это fieldErrors. Сообщение должно жить рядом с полем и подсказывать, что именно нужно исправить. Если сервер не сохранил запись, сущность исчезла или данные устарели, это formError. Такая ошибка относится ко всей форме и не должна маскироваться под локальную проблему input.
Практический эффект у этого разделения довольно заметный. UI становится честнее, контракт формы проще поддерживать, а client и server легче свести к одному shape результата. Именно в таких местах видно, что форма это не набор полей с кнопкой, а отдельный архитектурный узел с собственными уровнями состояния.
Проект: Workbench
Stepik: Next.js II: TypeScript 2026