我对如何构建React / Redux应用程序有疑问。
据我了解,建议不要在组件中引用容器。但是,当使用Redux应用程序嵌套组件时,顶级容器绑定了connect()
和mapStateToProps
等,但将所有道具传递给该行似乎很奇怪 - 只有组件。
使用嵌套组件构建应用程序时,例如:
Dialog > Form > Tab > Input Section > Input control
输入控件可能有一个prop
isVisible,我觉得很奇怪,我必须一直把这个道具传递到树下。
所以我的问题主要是,这确实是推荐的,这是如何处理的?例如,通过将道具设置为:
来简化这一点{
inputProps: { visible: false }
}
或者,我可以在我的组件中引用一个容器,所以我可以只为实际相关的道具设一个单独的 connect()
吗?
答案 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。