2014-09-22 25 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