簡體   English   中英

在商店偵聽器中調用另一個動作是否是Flux的反模式?

[英]Is calling another action in store listener an anti-pattern for Flux?

在我的代碼庫中,我在一些商店偵聽器內觸發了動作。 但是,最近我聽說這是一個不好的做法。 為什么它不好,我應該如何修復或重構它? 我已經對此問題進行了研究,但找不到一個很好的例子。

僅供參考,射擊動作(S),我使用action.defer提供Alt.js

您的方法是有效的Flux模式,但是當處理動作的函數觸發另一個動作時,它很容易成為代碼上的錯誤點,並且很難跟蹤該錯誤。


如何重構:

取決於商店當前觸發的操作是什么意思:

  • 如果您每次觸發動作A時都觸發動作B,則動作創建者(調用action.defer的代碼)應觸發A,然后觸發B
  • 如果僅在您的商店狀態滿足某些條件時才觸發B,則可以在創建的操作中檢查該previousState,然后選擇在A之后觸發B。

暫無
暫無

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

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