Next.js, fieldErrors vs formError

Next.js, fieldErrors vs formError

Одна из типовых проблем формы в Next.js возникает не в submit и не в схеме валидации, а в формате ошибки. Пока все сообщения сваливаются в одну переменную, интерфейс перестаёт различать две разные вещи, ошибка конкретного поля и ошибка самой операции.

Если title пустой или не проходит по длине, это fieldErrors. Сообщение должно жить рядом с полем и подсказывать, что именно нужно исправить. Если сервер не сохранил запись, сущность исчезла или данные устарели, это formError. Такая ошибка относится ко всей форме и не должна маскироваться под локальную проблему input.

Практический эффект у этого разделения довольно заметный. UI становится честнее, контракт формы проще поддерживать, а client и server легче свести к одному shape результата. Именно в таких местах видно, что форма это не набор полей с кнопкой, а отдельный архитектурный узел с собственными уровнями состояния.

Проект: Workbench

Начать дискуссию