Реакция: условное отображение динамически генерируемых (из нескольких источников данных) и вложенных переключателей - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть JSON источник вопросов и JSON источник ответов. Я предоставлю вопросы и соберу соответствующие ответы для отображения под ними. JSON может выглядеть следующим образом:

вопросов. json:

“7”: {
  “id”: 7,
  “title”: “A First Question”
  “answers”: [12,13]
},
“8”: {
  “id”: 8,
  “title”: “A different title”
  “answers”: [14, 15]
},
etc.

Ответы. json:

"12": {
    "id": 12,
    "questionId": 7,
    “Label”: “Yes”,
    "relatedQuestions": [8,9]
  },
  "13": {
    "id": 13,
    "questionId": 7,
    “Label”: “No”,
    "relatedQuestions": [10]
  },
  "14”: {
    "id": 14,
    "questionId": 8,
    “Label”: “Yes”,
    "relatedQuestions": [21]
  },
  "15”: {
    "id": 15,
    "questionId": 8,
    “Label”: “No”,
    "relatedQuestions": []
  },
etc.

Выше может возникнуть вопрос «Первый вопрос» с двумя переключателями, соответствующими ответам 12 и 13. Если вы нажмете «Да» (ответ 12), вы увидите похожие вопросы 8 и 9. Если вы нажмете «Нет» (ответ 13), вы будет видеть связанный вопрос 10

Я хочу отобразить свой вопрос и связанные с ним ответы (не сложно), затем обработать щелчок, чтобы определить, какой набор связанных вопросов следует показать (более сложно). Один улов - на странице может быть несколько переключателей, каждый из которых имеет свой собственный набор ответов, и, возможно, у них есть свои связанные вопросы. Это может быть вложенное переменное количество уровней с переменным количеством общих вопросов (очень сложно). Этот последний бит дает мне припадки. Как правильно «Реагировать» способ сделать это? Все, что я пробую, кажется очень громоздким и неуклюжим.

Я предполагаю, что мне нужен какой-то сортировочный или рекурсивный компонент, но как мне сохранить в этом состояние моего состояния? Мне нужно знать, с каким идентификатором вопросов связаны какие идентификаторы ответов, а затем с какими из этих идентификаторов ответов связаны вопросы ... мне кажется, что это куча кирпичей, и я уверен, что я не подхожу к этому правильно. Любой совет приветствуется. Как подходить к этому концептуально, как подходить к нему в коде ... что угодно.

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