2017-11-07 1 views
0

Jungen, brauchen Ihre HilfeReagieren Apollo Component Requisiten in `options.update` Methode

Ich habe folgende Frage:

Stellen Sie sich vor, wir haben eine Blog-Website. Wir haben eine Autorenseite mit Listen von Posts, die er erstellt hat /author/:authorId. Und der Autor möchte einen weiteren Beitrag am Ende dieser Liste hinzufügen. Wir haben eine Mutation dafür:

mutation PostCreateMutation($id: ID!, $title: String!) { 
    createPost(id: $id, title: $title, text: $text) { … } 
} 

Und nach der Mutation genannt wird, möchte ich UI aktualisieren, ohne alle Beiträge Erneutes Abrufen. Ich kann nicht options.update Methode verwenden, weil meine Update-Funktion wie folgt aussieht:

update: (proxy, { data: { createPost } }) => { 
    const data = proxy.readQuery({ 
     query: AUTHOR_QUERY, 
     variables: { 
      id: ‘1’ // => i cant get authorId here =(
     } 
    }); 
} 

I cant authorId in update Methode bekommen, weil ich einen Zugriff auf Komponente Requisiten nicht dort ... Wie soll ich damit umgehen?

Antwort

1

In Apollo, optionscan be a function instead of an object. So kann das config-Objekt, das Sie an Ihr HOC übergeben, wie folgt aussehen:

{ 
    options: ({authorId}) => ({ 
    update: (proxy, { data: { createPost } }) => { 
     const data = proxy.readQuery({ 
      query: AUTHOR_QUERY, 
      variables: { 
       id: authorId, 
      } 
     }); 
    } 
    }), 
} 
+0

Vielen Dank für die Antwort! Ich werde versuchen und hier posten =) –

+0

es funktioniert wie ein Charme! Danke mann! <3 –

Verwandte Themen