如何远程控制redux组件

时间:2016-10-02 08:09:41

标签: reactjs redux

我的设置是ReactJS + Redux。

我有一个名为Gallery的组件:

  • Gallery.js:ReactJS Component
  • GalleryContainer:Redux容器

我想从外部控制控制器中的选定选项卡(远在组件层次结构中)。我在 appState reducer中添加了一个变量,一个名为 setGallerySelectedTab 的动作创建者,我在 componentWillReviewProps 中收听新到的道具,并将它们与州的比较 selectedTab 。关于这种方法,我有两个未解决的问题:

  1. 努力工作:组件外观的每个方面以及我想控制的感觉都要求我创建一个新的reducer属性,action creator和willReceiveProps比较。
  2. 混乱:每个方面都有很多setState。感觉它使组件更具体。阅读组件代码的人想知道组件的功能,现在他看到了很多处理外部控制的代码。
  3. 有没有人知道如何在保持代码优雅的同时控制redux组件?

1 个答案:

答案 0 :(得分:1)

buy这样的接缝应该是一个动作创建者,所有组件都可以使用。如果你将它与你的组件共存,因为一个依赖于另一个,你应该通过将它们共享的状态放在Redux存储中来解耦它们。

OP之后的编辑改变了他的职位以更好地阐述问题。

您还没有给出任何具体的代码示例,但您说您必须执行大量的setState。为什么呢?

渲染组件的方式应该仅取决于组件的道具和内部状态。如果道具中的更改需要更改状态,您可以从render方法中的props中计算这些状态方法,而不是将它们存储在状态中。