将Redux状态传递给组件时的最佳实践

Ewa*_*ine 5 javascript reactjs redux

我正在与其他几个开发人员一起开展React + Redux项目,我们无法就最佳实践在哪些方面传递状态和行动达成一致.

我的方法是拥有一个"容器"或"提供者"组件,它是父组件,所有必需的状态和操作都映射到状态并传递给子组件,从而创建单一的事实来源.然而,缺点是,你必须记住在每个子组件中传递操作和值,这可能很难遵循.

另一种开发人员方法是mapStateToProps在堆栈中的任何位置使用需要它的每个组件.因此,如果三个或四个级别的子组件需要某个状态,他将在该组件上使用mapStateToProps.他还会直接使用import关键字导入动作创建者,而不是将其称为道具.我不喜欢这种方法,因为您可能会多次注入状态,并且无法在一个地方快速切换您的状态或操作.

我可以看到这两种方法都有它们的优点和后备,所以我只是想知道是否有一个明确的最佳实践,在何时何地将状态/动作注入到一堆React组件中.

小智 6

我研究了一个相对较大的Redux代码库,我们选择的方法和我喜欢的方法是使用容器组件的第二种方法mapStateToProps,它分派动作并将渲染委托给哑组件.

您希望能够在许多地方重复使用它们而不必传递状态.您的顶级还原状态仍然是事实的来源,但mapStateToProps允许您仅访问此容器中所需的状态部分.

Redux文档做得非常好,检查出来,它建议实现http://redux.js.org/docs/basics/UsageWithReact.html的容器组件mapStateToProps