2016-11-23 9 views
1

Reactアプリケーションでは、GraphQL APIをリクエストするためにreact-apolloを使用します。私はアイテムを追加し、この追加の後に私のクエリを更新したい。クエリにエッジが含まれ、ノードにApolloが含まれている場合、クエリを更新する方法は?

アイテムが正しく追加されましたが、クエリを更新できません。私は新しいアイテムを見るためにページを更新する必要があります。私はthis guideに従っています。

これで私のクエリ

export const allCodeReviews = gql` 
    query allCodeReviews { 
    allCodeReviews { 
    edges { 
     node { 
     id 
     reference 
     reviewer 
     revisionDate 
     redmineUrl 
     flow { 
      id 
      name 
     } 
     } 
    } 
    } 
} 

と、これは私の新しいアイテムを追加私の変異がある:

this.props.mutate({ 
    variables: { 
    "reviewer": "john", 
    "revisionDate": "2016-11-11", 
    "flow": "foo", 
    "redmineUrl": "foo.com", 
    "reference": "#bar" 
    }, 
    updateQueries: { 
    allCodeReviews: (prev, {mutationResult}) => { 
     const addedReview = mutationResult.data.addCodeReview.codeReview; 
     console.log(addedReview); 
     console.log(prev); 
     return update(prev, { 
     allCodeReviews: { 
      edges: { 
      $unshift: [addedReview] 
      } 
     } 
     }); 
    } 
    } 
}); 

がどのように正しくこのクエリを更新しますか?

答えて

1

私はあなたと試してくださいと思うと思います:$unshift: [{node: addedReview}]。あなたのaddCodeReview変異に応じて。

+0

はい、動作します。アイテムがデータベースに正しく追加されていたのに対し、updateQueriesが動作しないようにする日付フォーマット( "revisionDate"変数)にもエラーがありました。 –

関連する問題