如何使用Apollo在Query包含边和节点时更新查询?

时间:2016-11-23 13:59:41

标签: reactjs apollo react-apollo

我在我的React应用程序上使用react-apollo来请求GraphQL API。我想在添加后添加一个项目并更新我的查询。

项目已正确添加但我无法更新我的查询。我必须刷新页面才能看到我的新项目。我关注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 个答案:

答案 0 :(得分:1)

我认为你应该尝试:$unshift: [{node: addedReview}]。取决于您的addCodeReview突变。