2016-03-13 2 views
3

Этот вопрос касается места, где нужно проверить элемент формы в редуксе. Я чувствую, как будто у меня должно быть событие onValueChange, которое отправляет действие редуктору, который проверяет и обновляет как значение (недопустимое, так и действительное, как это может быть), а также свойство isValid в состоянии, чтобы затем этот элемент мог отображать ошибка.Валидация в редукторе в редукции

И наоборот, я мог бы выполнить валидацию в действии, и если она не удалась, просто отправьте действие сбоя.

Одно замечание заключается в том, что я предпочитаю анонимную функциональную номенклатуру для продления действия response.component.

Я предполагаю, что я должен изменить название этого места, где будет подходящее место для проверки валидации в потоке редукции.

+0

Я бы сказал, «это зависит». Я предпочитаю позаботиться о фактической проверке в обработчике событий компонента, который это касается, забыв о Redux на мгновение и отправив соответствующее действие в зависимости от результата. Я считаю, что редукторы не должны участвовать, пока вы не измените состояние приложения. – dannyjolie

+0

Или вы можете выполнить проверку в своем компоненте. Промежуточное состояние не входит в Redux imo. Сохраните состояние в Redux после отправки действительной формы. –

ответ

2

Сохраните проверку в своем компоненте. Я слышу много «сохраняю все состояние в редуксе», но я стараюсь только сохранить то, что мне абсолютно необходимо в redux. Используйте состояние компонента с свойством error, и если ваша проверка не позволяет установить состояние свойства error. Кроме того, редукционные формы: http://redux-form.com/4.2.0/#/?_k=mhjui4 - хорошая библиотека для простых и сложных форм.

+0

Эй, не хочу, чтобы ты висела, Когда я получу второй, чтобы снова поработать над этим, я приму свой ответ или обновлю свои выводы. Не хочу, чтобы ты думал, что я его бросил. – Raif

+0

Правильно, я предполагаю, что это было давно, но я пришел к тому же выводу, что есть состояние, которое подходит для компонента и состояния, которое подходит для redux и другого состояния. Поэтому я пошел с компонентом, контролирующим его собственное состояние, пока не пришло время подчиниться. – Raif

-1

Как вы можете поместить любую логику бизнеса в редукторы, если вам не разрешено «отклонять» обновление и запускать другое действие? Если дизайнеры разрешили редукторам возвращать действие, которое вы могли бы, например, проверить данные формы в отношении другого объекта того же типа в хранилище, в то время как они легко доступны (например, чтобы гарантировать, что электронная почта добавляемого пользователя уникальна), а затем выполните изменения (или нет) и инициируйте либо действие, чтобы очистить форму, либо действие, чтобы сообщить о дублированном письме. Но это было бы слишком большим для Реакта.

Смежные вопросы