フィールドの引数
ランタイム引数
リゾルバーが実行時に引数データにアクセスする必要がある場合は、単にリゾルバーのドキュメントブロックのフィールド定義で引数を定義し、引数としてリゾルバー関数の2番目の引数で引数を読み取ることができます。
/**
 * @RelayResolver User.greet(salutation: String!): String
 */
export function greet(user: UserModel, args: { salutation: string }): string {
  return `${args.salutation}, ${user.name}!`;
}
このフィールドを使用するには、GraphQLクエリでフィールドに引数を渡す必要があります
query MyQuery($salutation: String!) {
  me {
    greet(salutation: $salutation)
  }
}
これにより、クエリを取得するときに引数を渡すことも必要になります。
@rootFragmentに引数を渡す
派生リゾルバーを定義している場合、そのルートフラグメントのフィールドの1つに引数が必要な場合は、フラグメント定義で@argumentDefinitionsを使用して明示的なフラグメント引数を定義する必要があります。リゾルバーフィールドでは、この引数がフィールド引数として渡されることが想定されます。
/**
 * @RelayResolver User.fancyGreeting: String
 * @rootFragment UserFancyGreetingFragment
 */
export function fancyGreeting(key: UserFancyGreetingFragment$key): string {
  const user = readFragment(graphql`
    fragment UserFancyGreetingFragment on User @argumentDefinitions(
      salutation: {type: "String"},
    ) {
      name
      greet(salutation: $salutation)
    }
  `, key);
  return `${user.name} says ${user.greet}`;
}
このフィールドを使用するには、GraphQLクエリでフィールドに引数を渡す必要があります
query MyQuery($salutation: String!) {
  me {
    fancyGreeting(salutation: $salutation)
  }
}