1

私はreact-router-relayで次のことを読みました:

react-router-relay は、アクティブな React Router ルートからのすべてのクエリとパラメーターを組み合わせた Relay ルートを自動的に生成し、クエリ結果を各ルート コンポーネントに渡します。クエリはすべて 1 つのルートに集められるため、それらはすべて同時にフェッチされ、ページ全体のデータが読み込まれ、一度にレンダリングされます。

しかし、私のアプリでは、実際には への 2 つの別々の呼び出しが表示され/graphqlます。これが私のコードです:

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

最初の呼び出しは のデータをフェッチしAppSkeleton、2 番目の呼び出しは のデータをフェッチしますSites。それらすべてを 1 つの呼び出しにまとめるべきではなかったのでしょうか? 私は何を間違っていますか?

4

1 に答える 1

2

ドキュメントには、それらが単一の呼び出しにマージされるとは書かれていません。クエリは 1 つのルートに結合され、すべてのクエリが同時に作成されますが、ネットワーク リクエストへのクエリのマッピングはネットワーク層の問題です。

実際、デフォルトの Relay ネットワーク層は、特定のルートのすべてのクエリに対して個別の HTTP リクエストを発行します。これは、使用しているreact-router-relayかどうか、またはたまたま複数のクエリを持つルートがあるかどうかに関係なく発生します。

于 2016-01-21T14:47:01.930 に答える