Graphql Apollo客户端useQuery未在useQuery之后更新数据

Graphql Apollo客户端useQuery未在useQuery之后更新数据,graphql,apollo,apollo-client,Graphql,Apollo,Apollo Client,使用这种突变: import produce from 'immer const [createItem] = useMutation(CREATE_ITEM, { update (client, { data: { createItem } }) { const queryResults = client.readQuery({ query: GET_LATEST_ORDER, variables: { orderDepth: 1 } }) client.wri

使用这种突变:

import produce from 'immer

const [createItem] = useMutation(CREATE_ITEM, {
update (client, { data: { createItem } }) {
  const queryResults = client.readQuery({
    query: GET_LATEST_ORDER,
    variables: { orderDepth: 1 }
  })

  client.writeQuery({
    query: GET_LATEST_ORDER,
    variables: { orderDepth: 1 },
    data: produce(queryResults, draft => {
      draft.orders[0].items.push(createItem)
    })
  })
}
})

我找不到

  const { loading, data, refetch } = useQuery(GET_LATEST_ORDER, {
variables: { orderDepth: 1 }
})

显示突变后的更新数据


阿波罗缓存已正确更新。但是useQuery上的数据没有改变。

问题最终是突变返回的对象不完全相同。缺少一个@client字段。
虽然事后看来很明显,但除了我看到的一条评论提到可能缺少_类型名之外,我搜索的任何地方都没有将此描述为原因。
如果阿波罗抛出一个错误,这将是显而易见的。但是,没有抛出任何错误,useQuery上也不存在任何错误。

问题最终是,变异返回的对象并不完全相同。缺少一个@client字段。
虽然事后看来很明显,但除了我看到的一条评论提到可能缺少_类型名之外,我搜索的任何地方都没有将此描述为原因。 如果阿波罗抛出一个错误,这将是显而易见的。但是,没有抛出错误,useQuery上也不存在错误