Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 反应继电器+;路由器不会折叠嵌套路由的查询_Reactjs_React Router_Relayjs_React Router Relay - Fatal编程技术网

Reactjs 反应继电器+;路由器不会折叠嵌套路由的查询

Reactjs 反应继电器+;路由器不会折叠嵌套路由的查询,reactjs,react-router,relayjs,react-router-relay,Reactjs,React Router,Relayjs,React Router Relay,我在报纸上看到: react路由器中继将自动生成一个组合中继路由 使用来自活动React路由器路由的所有查询和参数, 然后将查询结果传递给每个路由组件。作为 所有查询都集中在一条路径上,它们都将 同时获取,将加载整个页面的数据 然后一次性渲染 但在我的应用程序中,我实际上看到了对/graphql的两个单独调用。这是我的密码: <Route path="site_:siteId" component={AppSkeleton} queries={SiteAccountQueries}>

我在报纸上看到:

react路由器中继将自动生成一个组合中继路由 使用来自活动React路由器路由的所有查询和参数, 然后将查询结果传递给每个路由组件。作为 所有查询都集中在一条路径上,它们都将 同时获取,将加载整个页面的数据 然后一次性渲染

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

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


第一个调用为
AppSkeleton
获取数据,第二个调用为
站点
获取数据。难道它不应该把他们都挤在一个电话里吗?我做错了什么?

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


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

谢谢,这很有意义。我相信有一个开放的功能请求,要求网络层足够智能,以聚合各种查询,对吗?我不确定是否有此功能请求,但可以构建一个自定义的网络层来进行批处理。(事实上,在Facebook上,我们的内部GraphQL端点有一个批处理端点,我们可以在一个请求中向其发送一系列查询,并在一个请求中返回结果。)不过,任何实现都是非常特定于后端的,因为GraphQL规范目前没有对如何传输查询提出任何要求。