如何确定哪个容器应该负责获取数据?

时间:2018-01-11 22:58:24

标签: reactjs redux react-redux

我们说我有一个React + Redux应用程序。

我收到了从API获取数据的操作。

我有多个容器需要从同一个API端点获取一些数据(所以我需要调度相同的操作)。

所有这些容器具有相同的重要性和优先级,并在页面上同时显示。

如何决定哪个容器负责派遣动作来获取数据?

它应该是随机的(我猜不是),是否有会议或图书馆帮助?

2 个答案:

答案 0 :(得分:1)

我也是反应+ Redux的新手。希望我的想法可以帮助你一点点。

您提到您的容器具有相同的重要性,并且会同时出现在页面上。然后我假设他们在一页上。在这种情况下。我会把所有行动都放在最顶层。

最简单的情况。假设您正在尝试创建一个问题编辑器。在这 页:

它有一个容器来处理名为

的问题的预览
<QuestionPreviewer >

它有一个容器来处理名为

的编辑问题
<QuestionAuditingForm />.

而且,你有一些行为,比如'DELET_QUESTION''SAVE_CHANGED'......你希望它们可以在任何这些组件中触发。

在这种情况下,我将在组件中包装所有操作

<QuestionEditorContainer /> 

作为功能。在这个容器中,我将把所有数据和这些函数(带有调度操作)从redux分发给它的子代

<QuestionPreviewer /> and <QuestionAuditingForm /> 

作为道具。在这种情况下,您的两个子组件将成为一个非常纯粹的组件,整个模块将变得更容易维护。

所以我的观点是,将所有内容(操作,数据)放在模块的顶级组件中。它为您节省了大量的维护时间。

希望这可能会有所帮助,如果有人在我做错任何事情时想要纠正我,我很高兴。

答案 1 :(得分:0)

您是否可以创建父容器来处理调度操作?

此外,在不知道您的确切用例的情况下 - 如果所有容器具有相同的优先级并且一起加载,则选择随机容器以发送操作也应该没问题。