Redux - 将props传递给子容器组件是否可以?

时间:2017-09-11 17:27:04

标签: reactjs react-redux

我遇到的情况是我必须将父容器组件中的props传递给子容器组件,以便子容器中的表示组件具有初始状态。还有另一种方法可以解决这个问题吗?这令人不满吗?

1 个答案:

答案 0 :(得分:3)

Redux是否正在使用父容器中的数据(您说的数据是“来自rails”)?如果没有,那那就是你真正的问题。 Redux应该是反应容器的唯一信息来源。反过来,Redux应接受来自Rails应用程序的信息,并将该信息存储在其全局状态中。

一旦您实现了这一目标,您现在可以获得所有信息的单一事实来源,以便将所有信息提供给React Containers。

如果子组件需要任何信息,它应该从父容器的redux状态信息中接收它们。

嵌套的子组件是可以的。只需继续将信息从1层传递到下一层。例如。 ContainerA从redux接收name,可以使用name={this.props.name}呈现ComponentX,然后ComponentX可以再次使用name={this.props.name}呈现ComponentY。这导致ComponentY通过父组件和容器从Redux传递信息。

您的应用程序自然应该拥有比容器更多的组件。这是好事。组件本质上是可重复使用的,因为它们仅与数据形状相关联,而不是与数据相关联。谨慎使用容器,并且仅当您要将特定信息插入一系列组件时才使用容器。