Next.js, fieldErrors vs formError
Одна из полезных мелочей в формах на Next.js легко превращается в архитектурный вопрос. Ошибка поля и ошибка формы это не одно и то же. Пока они смешаны в одну строку, интерфейс начинает врать пользователю. Непонятно, нужно ли исправить конкретное значение или проблема вообще не в input.
fieldErrors отвечают за уровень поля. Пустой title, короткая строка, неверный формат, превышение длины. formError отвечает за уровень операции. Например, запись не сохранилась, сущность уже удалена, сервер временно недоступен, данные устарели. Эти два типа ошибок похожи только внешне. По смыслу это разные ситуации, и UI должен показывать их по-разному.
Как только это разделение появляется в контракте формы, поведение интерфейса становится заметно чище. Пользователь видит, что именно нужно исправить, а где от него уже ничего не зависит. На client и server такую модель тоже легче держать согласованной.
Статья на Хабр Проект: Workbench Stepik: Next.js II: TypeScript 2026
#nextjs #typescript #zod #forms #validation #approuter #react #вебразработка
· 28.05
Видел как это ломается в реальных проектах. Когда fieldErrors и formError мешают в один стейт потом приходится угадывать как рендерить. Разделение сразу в TypeScript типах сильно облегчает жизнь.
ответить
коммент удалён
· 28.05
Точно, смешение в одном стейте получаем мешанину. Когда fieldErrors и formError явно разделены в типах, не нужно угадывать, где какое сообщение рисовать. Компонент получает чёткий контракт, под полями одно, над формой другое. TypeScript здесь реально держит архитектуру
ответить
ответ удалён