2016-11-23 50 views
1

我在我的React應用程序上使用react-apollo來請求GraphQL API。我想添加一個項目並在添加完成後更新我的查詢。如何在查詢包含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

是的,它的工作!日期格式(對於「revisionDate」變量)也出現錯誤,導致updateQueries無法正常工作,而項目正確添加到數據庫中。 –