2016-01-16 1 views
1

Я пишу успокаивающее приложение redux/react. Мой желаемый выход такой.Рабочий процесс Redux ajax с prelogic

INPUT_CHANGE--> 
(state = {valid: false})->REDUCER->(state = {valid: true})--> 
AJAX CALL 

Из документации Redux, асинхронная Javacript предполагается назвать от создателя действий, но я не понимаю, как добраться до создателя действий после того, как изменения состояния от действительного: фальшивых к действительному: верно.

Поскольку это приложение-приложение, я могу изменить скрытый ввод, который называется valid, к которому прикреплен создатель действия onChange, но это кажется ненужным дополнительным шагом. Есть идеи?

+0

Что-то должно случиться с действительным изменением состояния. Где бы это ни было, вы можете использовать 'componentWillUpdate', чтобы запустить создателя действия, который выполняет асинхронные действия. – azium

+0

С сокращением, технически обновляйте компоненты? Я думал, что нужно было переигрывать с новыми реквизитами? – l2silver

+0

Правильно ... всякий раз, когда компонент собирается перерисовать с помощью нового реквизита 'componentWillUpdate', срабатывает. Общий момент состоит в том, что что-то, что наблюдается в изменении состояния (например, связанный компонент), должно запускать действие (например, ajax call) – azium

ответ

0

Мое общее предпочтение состоит в том, чтобы создатели действия обрабатывали все операции async. Таким образом, операция проверки в этом вопросе можно сравнить с функцией shouldFetchPosts в http://rackt.org/redux/docs/advanced/AsyncActions.html

Создатель действия затем будет что-то вроде inputChangeAndSubmitIfValid что соответствует fetchIfNeeded действиям создателя этого файла.

В редких случаях я реализую observer для ловли изменений в магазине, но я всегда стараюсь найти лучший ориентированный на действия способ.