在特定查询的subscriptionToMore函数上,我似乎无法使查询获取新数据。
updateQuery: async (prev, { subscriptionData } ) => {
const posts = [
...prev.getPosts,
subscriptionData.data.postCreated
];
const result = {
...prev,
count: posts.length,
getPosts: posts
}
return result;
}
这将导致以下错误:
{}中缺少getPosts字段
如果我记录结果,我将得到:
对象{getPosts:(3)[…],计数:3}
我不确定是什么原因造成的,因为在其他几个updateQuery调用上看起来还不错。尤其是这似乎打破了。
有问题的查询
export const POST_CREATED = gql`
subscription postCreated($authorId: ID!){
postCreated(authorId: $authorId){
id, title, createdAt, published
}
} `;
export const GET_POSTS = gql`
query getPosts($authorId: ID!){
getPosts(authorId: $authorId){
id, title, createdAt, published
}
} `;
答案 0 :(得分:0)
遇到了同样的问题。 我修复了它,因为返回对象是错误的。 由于您只是将帖子添加到最后,因此应该可以:
updateQuery: async (prev, { subscriptionData } ) => {
prev.getPosts.push(subscriptionData.data.postCreated)
return prev;
}