【发布时间】:2016-10-21 18:44:25
【问题描述】:
我有一个正在使用的 Hub 组件,它支持一些组件作为选项,这些组件显示在一个栏中例如。保存按钮(表示为组件 B)。
我正在此集线器内渲染我的 UI 组件“A”。单击集线器的 Save 按钮(即 Component B )时,我想将组件 A 的(我的 UI )状态发送到服务器。
我的限制:- 我无法在 Hub 级别保存状态,因为它的层次结构太高,而且许多其他组件也会根据 url 在其他选项卡中呈现。
我考虑过的方法:
- 当点击 Save 按钮时,使用 refs 获取组件 A 的状态。
- 将一个对象从 Hub 传递到组件 A。组件 A 会将其状态保存在此对象中,以便无论何时父级需要该状态,它都可供它使用。
- 级联动作。在这种情况下,组件将监听一个动作(可行但非常不鼓励,因为它违反了通量)
【问题讨论】:
-
通常在 Flux 架构中,状态完全存在于组件之外。所以大概你会调度一个动作,它会 a)从正确的存储中获取状态,然后 b)导致副作用(保存到服务器) 然后 c) 通知您的组件树保存完成。您是否有理由不能将组件状态保存在通量存储中?
-
我正在做表单,当前表单数据处于状态。较早的表单数据在存储中。两者之间的比较告诉我是否启用保存。