【发布时间】:2016-10-23 06:47:42
【问题描述】:
我正在开发一个使用 Meteor 和 React 作为视图引擎的应用程序
考虑这个图表:
React hide component from another example
当触发 C4 按钮单击事件时,我需要更改 C2 组件状态。 由于它们没有直接关系,我无法直接从 C4 访问 C2 状态。
另一个例子是从一个组件提交一个表单并获取另一个组件中声明的数据(输入字段的值)。
我知道有一些可能的技巧可以解决这个问题 (例如 Meteor Session,通过每个组件传递数据,基于通量的 Action/Dispatcher)。
React 文档推荐使用事件/订阅系统(flux 是一种可能的解决方案,但flux 远不止于此...)Communicate Between Components
Redux 是另一种可能性(我有点担心,对于大型应用程序,如果我有很多操作,combined-reducers-function 会爆炸,而且还担心缺少特定于操作的订阅系统 -据我所知,派发动作时所有的监听器都会被执行——我是 redux 的新手,也许我错了)
Flux 或 Redux 是有效的模式,可以满足比我更大的需求,我已经有了 Meteor 来完成这种工作。 我唯一需要的是访问另一个内部的组件状态...
我需要一个针对具有大量组件视图的中型/大型应用程序的可扩展解决方案
解决这个问题的“正确”方法是什么?
更新:
最近我给了 redux 一个机会,它似乎完成了工作(它真的很棒并且得到很好的支持),所以如果你处于同样的情况,请检查React + Redux: submit multi-component form
【问题讨论】:
标签: javascript events reactjs redux flux