1

我在react-router-relay上读到:

react-router-relay 将自动生成包含来自活动 React Router 路由的所有查询和参数的组合 Relay 路由,然后将查询结果传递给每个路由组件。由于查询都收集到一个单一的路线上,它们都将被同时获取,整个页面的数据将一次性加载并呈现。

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

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

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

4

1 回答 1

2

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

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

于 2016-01-21T14:47:01.930 回答