React + Redux - архитектурный подход Apis - PullRequest
0 голосов
/ 05 июня 2018

У меня есть приложение реагирования с избыточностью, у меня два вызова 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 голосов
/ 05 июня 2018

Вы можете использовать перевыбор (библиотека), и вы можете получить правильный результат благодаря этому путем слияния свойств в селекторе.https://github.com/reduxjs/reselect

Это хорошо нормализованное состояние, поэтому нет смысла его денормализовывать.

Итак, сначала вы получите все элементы из нормализованного состояния, а затем получите все возможные результаты из второго API.Выполните итерацию по первым элементам и отфильтруйте ответы из второго API, где parentId не равен id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...