1

次のように、クエリ変数を名前空間/ネストしたいと思います。

query ($params: {$id: ID!}) {
  getUser(id: $params.id) {
    email
    username
  }
}

変数で:

{
  "params": {
    "id": "42"
  }
}

しかし、それは有効なクエリではありません。

ただし、次のようなクエリ:

query ($id: ID!) {
  getUser(id: $id) {
    email
    username
  }
}

変数で:

{
  "id": "42"
}

うまくいきます。

これを行う理由は、react ルーターからラップされたコンポーネントに適用されるプロップを使用して、クエリ オプションを ApolloReactgraphql高次コンポーネントに自動的に送信するためです。この質問は、プロップが反応ルーターによってコンポーネントに適用されるparamsという事実を除けば、基本的に反応ルーターとは何の関係もありません。params

ApolloReact はコンポーネントの props を使用して変数オブジェクトを自動的に構築しようとしますが、変数オブジェクトにidネストされpropsているため、見つけることができません。

別の方法は、変数オブジェクトを受け取って返すメソッドをid定義することにより、検索する場所を具体的に定義することですが、可能であれば避けたいと思います。optionsownPropsgraphql

4

1 に答える 1