メインコンテンツにスキップ
バージョン: v18.0.0

クエリの保持

Relayによって参照されるデータがガベージコレクションされないように、クエリを手動で保持するには、environment.retainメソッドを使用できます。

const {
createOperationDescriptor,
getRequest,
graphql,
} = require('relay-runtime')

// Query graphql object
const query = graphql`...`;

// Construct Relay's internal representation of the query
const queryRequest = getRequest(query);
const queryDescriptor = createOperationDescriptor(
queryRequest,
variables
);

// Retain query; this will prevent the data for this query and
// variables from being garbage collected by Relay
const disposable = environment.retain(queryDescriptor);

// Disposing of the disposable will release the data for this query
// and variables, meaning that it can be deleted at any moment
// by Relay's garbage collection if it hasn't been retained elsewhere
disposable.dispose();
注意

Relayは、データをレンダリングしているマウントされたクエリコンポーネントに基づいて、クエリデータの保持を自動的に管理するため、通常は製品コード内でretainを直接呼び出す必要はありません。高度なユースケースや特別なユースケースでは、クエリデータの保持は通常、ルーターなどのインフラレベルのコード内で処理する必要があります。


このページは役に立ちましたか?

いくつかの簡単な質問に答えて サイトをさらに良くするのにご協力ください.