React relay+router 不会折叠嵌套路由的查询

React relay+router does not collapse queries of nested routes

我在 react-router-relay 上看到:

react-router-relay will automatically generate a combined Relay route with all queries and parameters from the active React Router routes, then pass down the query results to each of the route components. As the queries are all gathered onto a single route, they'll all be fetched at the same time, and the data for your entire page will load and then render in one go.

但在我的应用程序中,我实际上看到了对 /graphql 的两个单独调用。这是我的代码:

<Route path="site_:siteId" component={AppSkeleton} queries={SiteAccountQueries}>
    <Route path="mySites" component={Sites} queries={SiteAccountQueries} />
</Route>

第一次调用获取 AppSkeleton 的数据,第二次调用 Sites。难道不应该将它们全部折叠成一个调用吗?我做错了什么?

文档没有说它们会合并到一个调用中。您的查询被合并到一个 路由 中,所有查询都是同时进行的,但是查询到网络请求的映射是网络层关注的问题。

事实上,默认中继网络层会为给定路由中的每个查询发出单独的 HTTP 请求;无论您使用的是 react-router-relay 还是恰好有一条包含多个查询的路线,都会发生这种情况。