Как не нарушить концепцию flux делая валидацию формы на серверной стороне?
Во FLUX все данные должны ходит только в одном направление [ компонент ] -> [ диспечер ] -> [ хранилище ] -> [ новые данные в компонент]
У меня простая задача. Есть форма редактирование заказа и список заказов.
Цикл простой: заполняем форму, нажимаем добавить -> [событие: создать заказ] -> диспечер перенаправляет его в хранилище заказов -> [событие в харнилище об изменениях] -> перерендер списка заказов.
Все просто и все рабоате.
А теперь усложним, нам нужно проваледировать форму заказа на сервере. Когда форма создала событие об добавление заказа событие перехватывает WebAPI и отправляет его на сервер и если все хорошо потом событие уходит в диспечер и в хранилище. А вот если все плохо и данные не валидны как об этом сообщить компоненту формы ? В мести с событием передавать callback чтоб вернуться при ошибки обратно в форму тогда данные уже не в одном направление ходят.
Решение простое - рядом с данными заказа в store хранить еще и данные об ошибках по этому заказу. Если api вернуло ошибки валидации то сохранить их в store (это вызовет перерисовку компонента и ввывод ошибок). При деинициализации компонента, а так же при успешном выполнении вызова к api - чистить ошибки в store.