2016-10-31 20 views
0

我有一個組件需要用戶輸入。當他們保存時,我使用動作來更新商店的狀態React/Alt - 在響應用戶輸入時避免在調度中調度?

爲了響應此新信息,結果組件需要運行異步操作,然後在新信息返回時作出響應。

無論我嘗試什麼,我似乎留下了一個黑客setTimeout或調度內派遣錯誤。

異步操作是通過數據源定義的,並具有自己的存儲區,如here所述。構建這種行爲的正確方法是什麼?

  1. 用戶輸入由輸入組件接收。
  2. 輸入組件使用一個動作來更新商店的狀態
  3. 目前,存儲嘗試啓動由輸出組件所需的異步操作
  4. 我的選擇,在這一點上似乎是調度,與派遣錯誤或涉及setTimeout的黑客解決方案。都沒有感覺正確。

我錯過了什麼?

+0

@JaromadaX所以我概述的流程是100%如何構建用戶輸入觸發狀態變化和進一步的異步行爲與反應和altjs? 我有一個流量問題,而不是代碼問題。我不需要代碼。我需要程序結構答案。 –

+0

好的 - 我想我從未在流程中看到「錯誤或黑客」 –

+0

@JaromandaX我會爲那些沒有閱讀完整介紹文本的人更新問題。 –

回答

0

忽略有關DataSources的示例。請勿在商店中使用registerAsync

而是使用操作來執行異步行爲並使結果更新存儲。在你給的例子,這樣做從輸入組件:

Action1.updateStore() 
AsyncAction2.run() 

然後,使用一個店看AsyncAction2行動,以更新並通知結果的組件。

0

如果您確定要在此時進行調度,並且只是希望避免出現「在調度內發送」錯誤,則可以使用alt的.defer方法(請參閱:http://alt.js.org/docs/actions/)。