loadEntryPoint
loadEntryPoint
この関数は、「レンダリングしながらフェッチ」パターンを実装するために、EntryPointContainerと一緒に使用するように設計されています。
loadEntryPointから返されたエントリーポイント参照は、関連するクエリがある場合、それらが参照されなくなったら.dispose()が呼び出されない限り、Relayストアにデータをリークします。そのため、可能な場合はuseEntryPointLoaderを使用することをお勧めします。これにより、エントリーポイント参照が正しく破棄されることが保証されます。より完全な例については、useEntryPointLoaderのドキュメントを参照してください。
const EntryPoint = require('MyComponent.entrypoint.js');
const {loadQuery} = require('react-relay');
// Generally, your component should access the environment from the React context,
// and pass that environment to this function.
const getEntrypointReference = environment => loadEntryPoint(
{ getEnvironment: () => environment },
EntryPoint,
{id: '4'},
);
// later: pass entryPointReference to EntryPointContainer
// Note that EntryPoint references should have .dispose() called on them,
// which is missing in this example.
引数
environmentProvider: リクエストを実行するRelay Environmentインスタンスのプロバイダー。Reactコンポーネント内でこのリクエストを開始する場合は、useRelayEnvironmentを使用して取得した環境を使用する必要があるでしょう。EntryPoint: ロードするEntryPoint。entryPointParams: EntryPointのgetPreloadPropsメソッドに渡されるパラメーター。
Flow型パラメーター
TEntryPointParams: EntryPointのgetPreloadPropsメソッドの最初のパラメーターの型に対応する型パラメーター。TPreloadedQueries: EntryPointコンポーネントへのqueriesパラメーターの型。TPreloadedEntryPoints: EntryPointコンポーネントに渡されるentrypointsパラメーターの型。TRuntimeProps:EntryPointContainerに渡されるpropsプロパティの型。このオブジェクトは、EntryPointコンポーネントにもpropsとして渡されます。TExtraProps: EntryPointのgetPreloadPropsメソッドがextraPropsプロパティを持つオブジェクトを返す場合、これらの追加のプロパティはEntryPointコンポーネントにextraPropsとして渡されます。TEntryPointComponent: EntryPointの型。TEntryPoint: EntryPointの型。
戻り値
次のプロパティを持つEntryPoint参照
dispose: このEntryPointによってロードされたクエリ参照(他のEntryPointを介した間接的なものを含む)がストアによって保持されないように解放するメソッド。これにより、これらのクエリ参照によって参照されるデータがガベージコレクションされる可能性があります。
戻り値の正確な形式は不安定であり、変更される可能性が非常に高いです。loadEntryPoint()の結果をEntryPointContainerに渡す代わりに、戻り値の他のプロパティを使用しないことを強くお勧めします。このようなコードは、Relayの将来のバージョンにアップグレードする際に壊れる可能性が非常に高いためです。
動作
loadEntryPoint()が呼び出されると、EntryPointの関連クエリ(ある場合)の各クエリは、クエリデータとクエリASTをロードします。クエリASTとデータの両方が利用可能になると、データはストアに書き込まれます。これは、関連するクエリがusePreloadedQueryでレンダリングされたときにのみ、関連するクエリからのデータをストアに書き込むprepareEntryPoint_DEPRECATEDの動作とは異なります。- EntryPoint参照の関連クエリ参照は、Relayストアによって保持され、データがガベージコレクションされるのを防ぎます。EntryPoint参照で
.dispose()を呼び出すと、関連するクエリからのデータはガベージコレクションされる可能性があります。 loadEntryPointは、Reactのレンダリングフェーズ中に呼び出されると、エラーをスローする可能性があります。
このページは役に立ちましたか?
サイトをさらに改善するために、 いくつかの簡単な質問にお答えください.