Reactjs 在React中获取整个GraphQL树的最佳方法是什么?

Reactjs 在React中获取整个GraphQL树的最佳方法是什么?,reactjs,graphql,relayjs,Reactjs,Graphql,Relayjs,假设我有以下GraphQL模式: type Cinema { name: String! rooms: [Room]! } type Room { name: String! seats: [Seat]! } type Seat { number: Int! booked: Boolean! } 在前视图中,我想在左侧显示一个菜单列表,其中包含折叠的导航,如: 电影名称 房间名称1 座位1(已预订) 座位2(已预订) 房间名

假设我有以下GraphQL模式:

type Cinema {
    name: String!    
    rooms: [Room]!
}

type Room {
    name: String!
    seats: [Seat]!
}

type Seat {
    number: Int!
    booked: Boolean!
}
在前视图中,我想在左侧显示一个菜单列表,其中包含折叠的导航,如:

  • 电影名称
    • 房间名称1
      • 座位1(已预订)
      • 座位2(已预订)
    • 房间名称2
      • 座位1(已预订)
      • 座位2(已预订)
在右边,我想显示一个包含所选电影院名称、所选房间名称和所有座位的地图的摘要

因此,菜单组件是GraphQL中的经典案例,每个连接(房间、座位)都有分页。但是摘要组件在实例化之前需要所有数据,并且不是菜单组件的子组件:

<Page>
  <Menu />
  <Summary />
<Page />

是的,可以用这个模式来处理这个问题

我是否应该根据我的组件对请求进行分段,重新蚀刻,直到我拥有所有数据并将结果保存在专用状态以发送到摘要组件

不,不可能用此模式处理此问题

我是否应该只发出一个不分页的请求,并手动将道具发送到我的组件


注1:我使用Relay Modern作为GraphQL客户端,但欢迎所有建议


注2:这个例子比我的实际用例简单。我有许多嵌套分页,我的“摘要”组件在初始化时需要所有数据。

根据上面的描述,摘要视图只是所选房间和电影院座位的不同表示形式。所以对电影院>房间>座位的查询应该可以,不是吗?如果是这样的话,我就不清楚为什么摘要组件需要所有的数据。我想你的用例不仅仅是这个类比。可以根据原始数据预先计算摘要,以避免在每次渲染时进行代价高昂的重新计算。例如,房间座椅为简单矩阵,可表示为数字(每个座椅一位)。这将是一个比获取原始座位数据便宜得多的查询。是的,在我的实际用例中,我必须处理许多嵌套分页。如果我想尊重中继方式,我必须根据我的组件将我的请求分段。但是,我不知道如何检索以中继方式操作我的
Summary
组件所需的所有数据。