当查询包含 Apollo 的边和节点时如何更新查询?
How to updateQueries when the Query contain edges and node with 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]
}
}
});
}
}
});
如何正确更新这个查询?
我认为你应该试试:$unshift: [{node: addedReview}]
。取决于您的 addCodeReview
突变。
我在我的 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]
}
}
});
}
}
});
如何正确更新这个查询?
我认为你应该试试:$unshift: [{node: addedReview}]
。取决于您的 addCodeReview
突变。