簡體   English   中英

React / Alt-在響應用戶輸入時避免在調度內進行調度?

[英]React/Alt - avoid dispatching within a dispatch when responding to user input?

我有一個需要用戶輸入的組件。 當他們保存時,我使用動作來更新商店的狀態

為了響應這些新信息,結果組件需要運行異步操作,然后在新信息返回時做出響應。

無論我嘗試什么,似乎都留下了hack setTimeout或dispatch- setTimeout -dispatch錯誤。

異步操作通過一個數據源定義,並擁有自己的店鋪所概述這里 構造此行為的正確方法是什么?

  1. 用戶輸入由輸入組件接收。
  2. 輸入組件使用動作來更新商店的狀態
  3. 當前,存儲嘗試啟動輸出組件所需的異步操作
  4. 此時我的選擇似乎是Dispatch-with-dispatch error或涉及setTimeout的hack解決方案。 兩者都不對。

我想念什么?

忽略有關數據源的示例。 不要在商店中使用registerAsync

而是使用動作執行異步行為並更新結果存儲。 在您給出的示例中,從輸入組件執行此操作:

Action1.updateStore()
AsyncAction2.run()

然后,使用商店監視AsyncAction2操作來更新並通知結果組件。

如果您確定要在那時進行調度,並且只是想避免出現“調度內調度”錯誤,則可以使用alt的.defer方法(請參閱: http ://alt.js.org/docs/ 動作/ )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM