2017-09-07 6 views
1

一般的に、私はapollo reactとGraphQLを使用してデータをクエリしたり変更したりしても問題ありません。しかし、私はちょうど得ることはありません一つのことがあります:GraphQLを使用して前のクエリのデータと一致するデータをクエリする

const Query = graphql(
    baseNodeQuery([ 
    'entityId', 
    'entityLabel' 
    ], 'employment_reference_preset'), { 
    options: { 
     variables: { 
     filter: { 
      type: "employment_reference_preset" 
     }, 
     limit: 1000, 
     offset: 0 
     } 
    } 
    }) 
(ExampleComponent); 

baseNodeQueryはGQLとクエリを準備するために、いくつかのパラメータを取るカスタム関数である:私はそうのような任意のエンティティのIDを取得し、クエリを持っていると仮定すると、 ()。しかし、いずれにせよ、私のExampleComponentに私はこのようなデータを使用することができます。

const EmploymentReferencePresetEntity = ({data: {loading, error, nodeQuery}}) => { 
    if (loading) { 
    return <p>Loading...</p>; 
    } 
    if (error) { 
    return <p>{error.message}</p>; 
    } 

    return (
    <div> 
     //do something with the data form nodeQuery 
    </div> 
) 
}; 

しかし、私は2番目のクエリを作成し、フィルタとしてそれがIDを使用するために、私は私の前のクエリから得たIDを使用したい場合は?以前のように、私のExampleComponentで別のgraphqlクエリを返すと、有効な反応コンポーネントが返されていないというエラーが表示されます。だから私はどうしたらいい?

ありがとうございます!

答えて

0

過去にこれを実行できる方法は、「子」クエリをそれ自身のコンポーネントに分割することでした。

すべての惑星を表示するソーラーシステムコンポーネントがあるとします。だから、詳細なしで惑星を返すクエリと、planetDetailsなどと呼ばれる別のクエリがあります。あなたはSolarSystemコンポーネントを作成し、それを親クエリでラップし、次に各コンポーネントをロードして別のコンポーネントをロードし、planetIDをプロップとして渡します。そのコンポーネントでは、planetDetailsクエリをラップし、クエリのpropet "planetID"を取得します。

私はそれが最良の例ではないことを知っています。

関連する問題