React + Redux - 建筑Apis方法

时间:2018-06-05 10:26:01

标签: reactjs redux architecture

我有一个带有redux的反应应用程序,我有两个api调用来获取数据。

第一个api调用返回一组问题数组。

第二次api调用会为每个问题返回一组答案

我也有api电话来获得特定问题的答案

第一次Api通话

{parent: 1, name: "default", id: 36}
{parent: 36, name: "help?", id: 2}
{parent: 36, name: "help me?", id: 3}
{parent: 35, name: "Don't help them?", id: 3}

第二次Api通话

{answer: "Yes", questionid: 2, id: 1, question: "help?"}
{answer: "No", questionid: 2, id: 2, question: "help?"}
{answer: "Maybe", questionid: 2, id: 3, question: "help?"}
{answer: "Yes", questionid: 3, id: 1, question: "help me?"}
{answer: "No", questionid: 3, id: 2, question: "help me?"}

数据应如下所示

群组名称:默认

帮助吗?是的,不,也许

帮帮我?是的,没有

我该如何做到这一点,我应该循环查询问题,然后我应该循环回答所有问题,所有这两个api调用,或者我应该循环问题和每个问题我应该称之为api的答案?

1 个答案:

答案 0 :(得分:1)

您可以使用重新选择(库),通过合并选择器中的属性,您可以获得正确的结果。 https://github.com/reduxjs/reselect

这是一个很好的规范化状态,所以没有必要对它进行非规范化。

首先,您将从规范化状态获取所有元素,然后从第二个API获取所有可能的结果。迭代第一个元素并过滤掉第二个API中的答案,其中parentId不等于id。