2016-10-02 10 views
26

Apollo Reactドキュメントhttp://dev.apollodata.com/react/queries.html#basicsには、コンポーネントが表示されたときに自動的にフェッチする例がありますが、ボタンをクリックしたときにクエリを実行したいと思います。ボタンがクリックされたときにクエリをフェッチする例がありますが、最初にクエリを実行する必要はありません。私は突然変異を呼び出す方法があることを知っていますが、どのように問い合わせを呼びますか?ここに記載されているようにあなたは、withApollo高次成分を使用したアポロクライアントへの参照を渡すことによってそれを行うことができますApollo GraphQL React - クリック時の問い合わせ方法は?

答えて

35

https://www.apollographql.com/docs/react/basics/setup.html#withApollo

次に、あなたがそうのように、オブジェクトに渡された上client.queryを呼び出すことができます。

class MyComponent extends React.Component { 
    runQuery() { 
    this.props.client.query({ 
     query: gql`...`, 
     variables: { ... }, 
    }); 
    } 

    render() { ... } 
} 

withApollo(MyComponent); 

好奇心ではなく、クリックイベントでクエリを実行する目的は何ですか?おそらく、基本的な目標を達成するためのより良い方法があります。

+0

私はこれを検索バーに使用したかった – kayla

+0

これを、親にgql HOCを持つコンポーネントで使用すると、親コンポーネントであるcomponentWillReceivePropsがトリガーされます。理由は分かりません。 良い方法がありますか?おそらく還元する。 –

+1

これは、小道具を更新しませんか?どうして?結果が成功した後、どのように小道具を更新できますか? – CharlesS

関連する問題