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

commitMutation

commitMutation

ミューテーションを命令的に実行します。

useMutation APIとデータ更新ガイドも参照してください。

import type {FeedbackLikeMutation} from 'FeedbackLikeMutation.graphql';
const React = require('React');

const {graphql, commitMutation} = require('react-relay');

function likeFeedback(environment: IEnvironment): Disposable {
return commitMutation<FeedbackLikeMutation>(environment, {
mutation: graphql`
mutation FeedbackLikeMutation($input: FeedbackLikeData!) {
feedback_like(data: $input) {
feedback {
id
viewer_does_like
like_count
}
}
}
`,
variables: {
input: {
id: '123',
},
},
});
}

引数

MutationConfig<TMutationConfig: MutationParameters>

  • 以下のフィールドを持つオブジェクト
    • cacheConfig: * *[オプション]* * CacheConfig
    • mutation: GraphQLTaggedNode。GraphQLリテラルを使用して指定されたミューテーション
    • onError: * *[オプション]* * (Error) => void。ミューテーションがエラーになった場合に実行されるオプションのコールバック。
    • onCompleted: * *[オプション]* * ($ElementType<TMutationConfig, 'response'>) => void。ミューテーションが完了したときに実行されるオプションのコールバック。
      • onCompleted に渡される値は、アップデータと宣言型ミューテーションディレクティブが適用された **後** にストアから読み取られたミューテーションフラグメントです。これは、マスクされていないフラグメント内のデータは読み取られず、削除されたレコード (例: @deleteRecord による) も null になる可能性があることを意味します。
    • onUnsubscribe: * *[オプション]* * () => void。返された Disposable が破棄されたときに発生する、ミューテーションの登録が解除されたときに実行されるオプションのコールバック。
    • optimisticResponse: * *[オプション]* * ミューテーションの raw レスポンスタイプと一致する型のオブジェクト。このフィールドを使用している場合は、ミューテーションに @raw_response_type を付けてください。
    • optimisticUpdater: * *[オプション]* * SelectorStoreUpdateroptimisticResponse がストアに正規化された後、commitMutation が呼び出されたときに実行されるコールバック。
    • updater: * *[オプション]* * SelectorStoreUpdater。ペイロードがストアに書き込まれた後、ペイロードが受信されたときに実行されるコールバック。
    • uploadables: * *[オプション]* * UploadableMap。オプションのアップロード可能マップ。
    • variables: $ElementType<TMutationConfig, 'variables'>。ミューテーションに渡す変数。

CacheConfig

  • 以下のフィールドを持つオブジェクト
    • force: * *[オプション]* * 真偽値。true の場合、構成されているレスポンスキャッシュの状態に関係なく、クエリが無条件に発行されます。
    • poll: * *[オプション]* * 数値。指定された間隔 (ミリ秒) でポーリングすることにより、クエリをライブ更新します。(この値は setTimeout に渡されます)。
    • liveConfigId: * *[オプション]* * 文字列。GraphQLLiveQuery を呼び出すことによってクエリをライブ更新します。ライブクエリを実行する際のゲートウェイの構成を表します。
    • metadata: * *[オプション]* * オブジェクト。ユーザーが提供するメタデータ。
    • transactionId: * *[オプション]* * 文字列。操作を実行する特定のインスタンスの一意の ID として使用することを目的とした、ユーザーが提供する値。

型 `SelectorStoreUpdater`

  • シグネチャ `(store: RecordSourceSelectorProxy, data) => void` を持つ関数
  • このインターフェースを使用すると、Relay ストアに直接データを読み書きする*命令型*の操作が可能になります。つまり、サブスクリプションペイロードに応じてストアを更新する方法を完全に制御できます。*完全に新しいレコードを作成*したり、*既存のレコードを更新または削除*したりできます。Relay ストアへの読み書きのための完全な API はこちらにあります.

型 `UploadableMap`

  • 値がFileまたはBlobであるオブジェクト。

MutationParameters

  • 以下のフィールドを持つオブジェクト
    • response: オブジェクト
    • variables: オブジェクト
    • rawResponse: オプションのオブジェクト

戻り値

  • Disposableで、
    • リクエストが完了する前に呼び出された場合、楽観的更新をキャンセルして元に戻し、onComplete および onError コールバックが実行されないようにします。必ずしもネットワークリクエストをキャンセルするとは限りません。 onUnsubscribe コールバックが呼び出される原因となります。
    • 最初のリクエストが完了した後に呼び出された場合、何も実行しません。

インターフェース Disposable

  • 次のキーを持つオブジェクト
    • dispose: () => void。リソースを破棄します。

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

いくつかの簡単な質問に答えることで、 サイトの改善にご協力ください.