【问题标题】:What is the right way to fire an action with siblings state in React/Flux?在 React/Flux 中使用兄弟状态触发动作的正确方法是什么?
【发布时间】:2016-10-21 18:44:25
【问题描述】:

我有一个正在使用的 Hub 组件,它支持一些组件作为选项,这些组件显示在一个栏中例如。保存按钮(表示为组件 B)。

我正在此集线器内渲染我的 UI 组件“A”。单击集线器的 Save 按钮(即 Component B )时,我想将组件 A 的(我的 UI )状态发送到服务器。

我的限制:- 我无法在 Hub 级别保存状态,因为它的层次结构太高,而且许多其他组件也会根据 url 在其他选项卡中呈现。

我考虑过的方法:

  1. 当点击 Save 按钮时,使用 refs 获取组件 A 的状态。
  2. 将一个对象从 Hub 传递到组件 A。组件 A 会将其状态保存在此对象中,以便无论何时父级需要该状态,它都可供它使用。
  3. 级联动作。在这种情况下,组件将监听一个动作(可行但非常不鼓励,因为它违反了通量)

【问题讨论】:

  • 通常在 Flux 架构中,状态完全存在于组件之外。所以大概你会调度一个动作,它会 a)从正确的存储中获取状态,然后 b)导致副作用(保存到服务器) 然后 c) 通知您的组件树保存完成。您是否有理由不能将组件状态保存在通量存储中?
  • 我正在做表单,当前表单数据处于状态。较早的表单数据在存储中。两者之间的比较告诉我是否启用保存。

标签: reactjs flux


【解决方案1】:

看了很多之后,使用refs读取一个孩子的状态是解决这个问题的方法。

您不应该修改孩子的状态或使用 refs 调用方法。

可以使用 refs 读取状态。

【讨论】:

    猜你喜欢
    • 2014-07-31
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    相关资源
    最近更新 更多