【问题标题】:React / Redux deep props dependecyReact / Redux 深度 props 依赖
【发布时间】:2017-01-23 21:35:13
【问题描述】:

我有一个关于如何构建 React/Redux 应用程序的问题。

据我了解,不推荐在 component 中引用 containers。但是,当使用 Redux 应用程序嵌套组件时,顶级容器与 connect()mapStateToProps 等绑定,但是将 all 属性传递给 -only- 组件似乎很奇怪.

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

Dialog > Form > Tab > Input Section > Input control

输入控件可能有一个prop isVisible,我觉得我必须将道具一直沿树向下传递。

所以我的问题主要是,这确实是推荐的吗?如何处理?例如,这是否通过将道具设置为以下内容来简化:

{
  inputProps: { visible: false }
}

?

或者,我可以在我的组件中引用一个容器,这样我就可以有一个单独的 connect() 来仅用于实际相关的道具?

【问题讨论】:

标签: javascript reactjs redux


【解决方案1】:

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 的推文,了解有关“容器与展示”结构的想法。

【讨论】:

    【解决方案2】:

    如果您发现自己传递了许多属性,也许它们应该是容器。

    redux-form 为例。完全可以是关于组件的,但他们也决定使用 redux。

    【讨论】:

    • 那么一棵 DialogContainer > Dialog > FormContainer > Form > Tab > InputSection > InputControlContainer > InputControl 可能有意义吗?在传递大量道具时可能会更受欢迎?
    猜你喜欢
    • 1970-01-01
    • 2019-08-05
    • 2020-12-29
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2017-08-27
    • 2018-07-01
    相关资源
    最近更新 更多