Как вы организовываете валидации в flux/react.js?

В моем проекте я использую react.js и что-то похоже на flux. Есть один громадный объект, который отвечает за состояние почти всего, диспатчер слушает события в компонентах и апдейтит этот объект, в следствии реакт рендерит изменения на страницу. Все понятно. Но когда дело дошло до сложных динамически генерируемых форм и сложных валидаций, возник вопрос как это все организовать? Ясное дело что сама валидация должна быть где-то рядом с диспатчером, но вот как грамотно донести эти ошибки до компонентов?
  • Вопрос задан
  • 1398 просмотров
Решения вопроса 1
@roman01la
В идеале у вас должен быть компонент типа <InputValidator /> который оборачивает поле ввода и имеет в себе логику валидации. В этот компонент можно передать правила валидации (pattern, length, и т.д.), а на onChange уже делать dispatch и обновлять глобальное состояние.
Статус валидности можно передавать прямо в onChange, вторым параметром, после события, или добавлять в объект события.

Компонент с валидацией поля не должен быть привязан изнутри к вашему коду, он должен быть черным ящиком.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@ctpayc
а мне вот эта библиотека понравилась https://github.com/christianalfoni/formsy-react
Ответ написан
Комментировать
@IvanKalinin
Для своих проектов использую свою библиотеку web-form-validator
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы