我有一个带有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的答案?
答案 0 :(得分:1)
您可以使用重新选择(库),通过合并选择器中的属性,您可以获得正确的结果。 https://github.com/reduxjs/reselect
这是一个很好的规范化状态,所以没有必要对它进行非规范化。
首先,您将从规范化状态获取所有元素,然后从第二个API获取所有可能的结果。迭代第一个元素并过滤掉第二个API中的答案,其中parentId不等于id。