Javascript 在Redux中的组件中放置容器可以吗?
我正在使用React/Redux进行黑客攻击,并一直在构建大量容器和组件 然而,我最近遇到了一个设计选择,它使我的元素看起来像这样: 我的问题是这个设计可以吗?基本上,我正在努力将Javascript 在Redux中的组件中放置容器可以吗?,javascript,reactjs,redux,Javascript,Reactjs,Redux,我正在使用React/Redux进行黑客攻击,并一直在构建大量容器和组件 然而,我最近遇到了一个设计选择,它使我的元素看起来像这样: 我的问题是这个设计可以吗?基本上,我正在努力将Redux操作传递到按钮,因为按钮有几层深。我可以继续将操作从HeaderContainer向下传递到组件,但是如果DOM变得更深,它只会变得越来越糟糕 我觉得这种设计是错误的,因为一个表示组件正在调用一个容器组件 有什么想法吗?您有三个选择: 首先是将按钮组件直接连接到商店,让它既是容器组件又是表示组件。简单有效
Redux操作
传递到按钮,因为按钮有几层深。我可以继续将操作从HeaderContainer
向下传递到组件,但是如果DOM变得更深,它只会变得越来越糟糕
我觉得这种设计是错误的,因为一个表示组件正在调用一个容器组件
有什么想法吗?您有三个选择:
- 首先是将按钮组件直接连接到商店,让它既是容器组件又是表示组件。简单有效
参见Redux创建者的示例(第四篇文章)导出默认连接(MapStateTrops、mapDispatchToProps)(按钮组件)
- 第二种方法是创建一个容器来包装按钮,并让按钮只是一个表象——即您当前的实现。非常好的分层架构,但在这一点上对我来说设计过度
- 第三是将操作从
传递到标题组件容器
按钮组件
如果按钮深度不超过2级,我会选择第三个按钮,因为您已经连接了
HeaderComponentContainer
,作为家长,它有责任确定其孩子应该提供什么功能(他们只提供,对吗?)
另外,您可以使用在层次结构中任意深入地传递操作/属性,而无需对每个组件进行明确的传递。您好,我不明白的是,为什么您首先需要连接到应用商店才能分派操作?仅当组件渲染需要侦听存储中的更改时,才应连接到存储…“presentational component正在调用容器组件”。丹·阿布拉莫夫说,如果我理解正确,我目前的实现基本上是第二个。创建容器组件以包装按钮组件。听起来不错吧?我只是想确保它是一个有效的模式。我更喜欢在我们的演示组件上使用
@connect
。看见