2014-09-22 60 views
3

如何在使用Flux實現時顯示模態窗口。我可以讓組件更新它的狀態來顯示一個模式並在完成後關閉它。保存模式會觸發一個操作並更新商店。但是這種模式並不意味着它需要關閉。然後我需要發出不同的事件或讓商店存儲模態的狀態。通量:處理模態窗口

回答

3

對我來說,將模態的狀態存儲在商店中是完全正確的。在保存事件時,只需使用布爾值來說明是否應顯示模態。

您的商店不需要具有單個屬性,它可能更復雜。就像有一個數組和一個布爾值。 當保存發生時,只需更新你的數組,並把布爾值open=false,你將在你的渲染方法中使用,不再渲染模態。你不需要2個動作來做到這一點,一個動作可以更新你的商店模型+更新布爾值爲false。 這裏的複雜性是要知道要在商店裏放什麼。如何組織你的狀態......隨着時間的推移,這會變得相當複雜。到現在爲止,我通過使用自主組件和他們自己的商店(如小工具)取得了巨大的成功。 You can find more details here.

以更一般的方式,您可以在商店中放置佈局屬性。像光標或鼠標位置,打開的模式,無論鼠標是否超過某個元素...

+1

我正在使用類似的方法,即在Store中存儲狀態。正如你所說,複雜性是知道應該放在商店裏。檢查鏈接,如果你有一個示例應用程序,會更感興趣。 – pra 2014-09-23 09:11:32

+0

我同意這一點。我們正在做同樣的事情,但我們有一個在特定環境下處理所有模態的商店。所以我們做ModalActionCreators.openModal('CreatePostModal'); – stueynet 2016-03-30 12:44:33