Допустим, у меня есть следующая схема Graphql:
type Cinema {
name: String!
rooms: [Room]!
}
type Room {
name: String!
seats: [Seat]!
}
type Seat {
number: Int!
booked: Boolean!
}
На виде спереди я хочу отобразить список меню слева со свернутой навигацией, например:
- cinemaимя
- название комнаты 1
- место 1 (забронировано)
- место 2 (забронировано)
- ...
- название комнаты 2
- место 1 (забронировано)
- место 2 (забронировано)
- ...
- . ..
А справа я хочу показать сводку с выбранным названием кинотеатра, названием выбранной комнаты и картой со всеми местами.
Итак, компонент меню представляет собой классический чехол в Graphql с нумерацией страниц для каждого соединения (комнаты, места). Но компоненту сводки нужны все данные до создания экземпляра , и он не является потомком компонента меню:
<Page>
<Menu />
<Summary />
<Page />
Да, с этой схемой можно справиться!
Должен ли я фрагментировать свой запрос в соответствии с моими компонентами, повторять выборку до тех пор, пока у меня не будут все данные, и сохранить результаты в выделенном состоянии для отправки в компонент сводки?
Нет, это не такможно справиться с этой схемой!
Должен ли я сделать только один запрос без нумерации страниц и вручную отправить компоненты на мои компоненты?
Примечание 1 : Я использую Relay Modern в качестве клиента Graphql с нумерацией курсоров в стиле ретрансляции , но все предложения приветствуются.
Примечание 2 : этот пример проще, чем мой реальный пример использования,У меня много вложенных страниц, и моему «итоговому» компоненту нужно все данные при инициализации.