我在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
的数据。是不是应该将它们全部合并为一个电话?我做错了什么?
答案 0 :(得分:2)
文档并未说明它们会合并为一个调用。您的查询将合并为一个路由,并且所有查询都会同时进行,但查询到网络请求的映射是网络层的一个问题。
事实上,默认的中继网络层将为给定路由中的每个查询发出单独的HTTP请求;无论您是否使用react-router-relay
,或者您是否恰好拥有包含多个查询的路由,都会发生这种情况。