2016-10-02 8 views
26

In Apollo React docs http://dev.apollodata.com/react/queries.html#basics gibt es Beispiele für das automatische Abrufen, wenn die Komponente angezeigt wird, aber ich möchte eine Abfrage ausführen, wenn auf eine Schaltfläche geklickt wird. Ich sehe ein Beispiel, um eine Abfrage abzurufen, wenn auf eine Schaltfläche geklickt wird, aber ich möchte nicht, dass sie anfänglich abfragt. Ich sehe, es gibt eine Möglichkeit, Mutationen aufzurufen, aber wie nennt man Abfragen?Apollo GraphQL React - wie Abfrage auf Klick?

Antwort

35

Sie können es tun, indem Sie einen Verweis auf Apollo-Client Bestehen der withApollo höherer Ordnung Komponente, wie hier dokumentiert: https://www.apollographql.com/docs/react/basics/setup.html#withApollo

Dann Sie client.query auf dem übergebenen Objekt aufrufen kann, etwa so:

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

    render() { ... } 
} 

withApollo(MyComponent); 

Aus Neugier, was ist das Ziel der Abfrage auf ein Klickereignis? Vielleicht gibt es einen besseren Weg, das zugrunde liegende Ziel zu erreichen.

+0

Ich wollte dies für eine Suchleiste verwenden – kayla

+0

Im Finden, wenn ich dies auf eine Komponente verwenden, die die gql HOC auf einem Elternteil hat, löst es die Eltern componentWillReceiveProps. Keine Ahnung warum. Gibt es einen besseren Weg? vielleicht redux. –

+1

Dies aktualisiert die Requisiten nicht? Warum? Wie kann ich Requisiten aktualisieren, nachdem das Ergebnis erfolgreich angekommen ist? – CharlesS

Verwandte Themen