2016-10-31 2 views
0

У меня есть компонент, который принимает пользовательский ввод. Когда они сохраняются, я использую действие для обновления состояния магазина.React/Alt - избегать отправки в пределах отправки при ответе на ввод пользователя?

В ответ на эту новую информацию компонент результатов должен выполнить операцию async, а затем ответить, когда возвращается новая информация.

Независимо от того, что я пытаюсь, я, кажется, остался с хаком setTimeout или ошибкой отправки в пределах отправки.

Операция async определяется с помощью источника данных и имеет собственный магазин, как указано here. Каков правильный способ структурирования этого поведения?

  1. Пользовательский ввод принимается компонентом ввода.
  2. Входной компонент использует действие для обновления состояния в магазине в
  3. В настоящее время магазин пытается запустить операцию асинхронной необходимую выходной компонент
  4. Мой выбор на данный момент, кажется, отправка-с отправкой ошибки или взлома с использованием setTimeout. Ничто не кажется правильным.

Что мне не хватает?

+0

@JaromadaX Итак, поток, который я обозначил, составляет 100%, как вы бы структурировали пользовательский ввод, запуская как изменение состояния, так и дальнейшее асинхронное поведение с реакцией и altjs? У меня проблема с потоком, а не проблема с кодом. Мне не нужен код. Мне нужны ответы на структуру программы. –

+0

OK - Думаю, я никогда не видел «ошибки или взлома» как часть потока –

+0

@JaromandaX. Я обновлю вопрос для тех, кто не прочитал полный вводный текст. –

ответ

0

Игнорировать примеры источников данных. Не используйте registerAsync в магазинах.

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

Action1.updateStore() 
AsyncAction2.run() 

Затем используйте магазин наблюдая AsyncAction2 действия по обновлению и информирующий результат компонентов.

0

Если вы уверены, что хотите отправиться в этот момент и хотите избежать ошибки «отправки в пределах отправки», вы можете использовать метод alt .defer alt (см.: http://alt.js.org/docs/actions/).

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