我们说我有一个React + Redux应用程序。
我收到了从API获取数据的操作。
我有多个容器需要从同一个API端点获取一些数据(所以我需要调度相同的操作)。
所有这些容器具有相同的重要性和优先级,并在页面上同时显示。
如何决定哪个容器负责派遣动作来获取数据?
它应该是随机的(我猜不是),是否有会议或图书馆帮助?
答案 0 :(得分:1)
我也是反应+ Redux的新手。希望我的想法可以帮助你一点点。
您提到您的容器具有相同的重要性,并且会同时出现在页面上。然后我假设他们在一页上。在这种情况下。我会把所有行动都放在最顶层。
最简单的情况。假设您正在尝试创建一个问题编辑器。在这 页:
它有一个容器来处理名为
的问题的预览<QuestionPreviewer >
它有一个容器来处理名为
的编辑问题<QuestionAuditingForm />.
而且,你有一些行为,比如'DELET_QUESTION''SAVE_CHANGED'......你希望它们可以在任何这些组件中触发。
在这种情况下,我将在组件中包装所有操作
<QuestionEditorContainer />
作为功能。在这个容器中,我将把所有数据和这些函数(带有调度操作)从redux分发给它的子代
<QuestionPreviewer /> and <QuestionAuditingForm />
作为道具。在这种情况下,您的两个子组件将成为一个非常纯粹的组件,整个模块将变得更容易维护。
所以我的观点是,将所有内容(操作,数据)放在模块的顶级组件中。它为您节省了大量的维护时间。
希望这可能会有所帮助,如果有人在我做错任何事情时想要纠正我,我很高兴。
答案 1 :(得分:0)
您是否可以创建父容器来处理调度操作?
此外,在不知道您的确切用例的情况下 - 如果所有容器具有相同的优先级并且一起加载,则选择随机容器以发送操作也应该没问题。