React / Redux深度道具依赖

时间:2017-01-23 21:35:14

标签: javascript reactjs redux

我对如何构建React / Redux应用程序有疑问。

据我了解,建议不要在组件中引用容器。但是,当使用Redux应用程序嵌套组件时,顶级容器绑定了connect()mapStateToProps等,但将所有道具传递给该行似乎很奇怪 - 只有组件。

使用嵌套组件构建应用程序时,例如:

Dialog > Form > Tab > Input Section > Input control

输入控件可能有一个prop isVisible,我觉得很奇怪,我必须一直把这个道具传递到树下。

所以我的问题主要是,这确实是推荐的,这是如何处理的?例如,通过将道具设置为:

来简化这一点
{
  inputProps: { visible: false }
}

或者,我可以在我的组件中引用一个容器,所以我可以只为实际相关的道具设一个单独的 connect()吗?

2 个答案:

答案 0 :(得分:3)

Redux的一个要点是允许各个组件连接到商店并提取他们需要的数据。另外,不要在分离代码库中的东西方面超越整个“容器/组件”的区别。

有关连接多个组件的详细信息,请参阅https://redux.js.org/faq/react-redux#should-i-only-connect-my-top-component-or-can-i-connect-multiple-components-in-my-tree上的Redux常见问题解答条目;有关“容器与表现”结构的想法,请参阅https://twitter.com/dan_abramov/status/802569801906475008上的Dan Abramov的推文。

答案 1 :(得分:1)

如果您发现自己传承了许多属性,可能应该是容器。

redux-form为例。它可能完全与组件有关,但他们也决定使用redux。