Reactjs Apollo Client updateQuery在{}中缺少字段[fieldName]

Reactjs Apollo Client updateQuery在{}中缺少字段[fieldName],reactjs,graphql,apollo,react-apollo,Reactjs,Graphql,Apollo,React Apollo,在一个特定的查询subscribeToMore函数中,我似乎无法让查询获取新数据 updateQuery: async (prev, { subscriptionData } ) => { const posts = [ ...prev.getPosts, subscriptionData.data.postCreated ]; const

在一个特定的查询subscribeToMore函数中,我似乎无法让查询获取新数据

        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
        }
    } `;

这看起来有点奇怪——我不希望
count
位于根级别。问题中的实际查询是什么?只是一个getPosts查询,它返回[Post!]。我已确保帖子回复包含相同的信息。你能幽默我并编辑问题以包含实际的查询吗?我怀疑您返回的对象与您的实际查询不匹配,但如果没有看到queryDone,我无法确认这一点。有趣的是,即使我简单地编辑updateQuery以立即返回prev(这样数据是相同的),它仍然会导致相同的错误。是的,确实很奇怪。我相信,当您尝试写入缓存了查询但未写入的查询时,会抛出该错误。是否有任何突变也在更新缓存中的同一查询?我想知道你的代码中的
writeQuery
是否把缓存搞砸了。