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のレンダリングフェーズ中に呼び出されると、エラーをスローする可能性があります。
このページは役に立ちましたか?
サイトをさらに改善するために、 いくつかの簡単な質問にお答えください.