我在react-router-relay上读到:
react-router-relay将自动生成一个组合的中继路由,其中包含来自活动的React Router路由的所有查询和参数,然后将查询结果传递给每个路由组件 . 由于查询都被收集到一条路线上,因此它们将同时被提取,整个页面的数据将被加载,然后一次性渲染 .
但在我的应用程序中,我实际上看到两个单独的调用 /graphql
. 这是我的代码:
<Route path="site_:siteId" component={AppSkeleton} queries={SiteAccountQueries}>
<Route path="mySites" component={Sites} queries={SiteAccountQueries} />
</Route>
第一个调用获取 AppSkeleton
的数据,第二个调用获取 Sites
的数据 . 是不是应该将它们全部合并为一个电话?我究竟做错了什么?
1 回答
该文档并未说明它们会合并为一个调用 . 您的查询被合并到一个路由中,并且所有查询都是同时进行的,但是查询到网络请求的映射是网络层的关注点 .
事实上,默认的中继网络层将为给定路由中的每个查询发出单独的HTTP请求;无论您是使用
react-router-relay
还是恰好有一个包含多个查询的路由,都会发生这种情况 .