React/Alt - избежать отправки внутри диспетчерской при ответе на ввод пользователя?

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

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

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

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

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

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

2 ответа

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

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

Action1.updateStore()
AsyncAction2.run()

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

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

Другие вопросы по тегам