使用 Apollo-Client 重新获取查询会引发错误
Posted
技术标签:
【中文标题】使用 Apollo-Client 重新获取查询会引发错误【英文标题】:Refetching a query using Apollo-Client throws an error 【发布时间】:2021-10-06 11:07:31 【问题描述】:我正在使用 Apollo-client 将突变发布到我的 graphql 服务器。突变完成后,我想重新获取该数据。我尝试在useMutation
挂钩中使用refetchQueries
参数,但是在执行代码时收到此错误:
查询选项是必需的。您必须在中指定您的 GraphQL 文档 查询选项。
这是发送突变的代码行:
const [addUser, data, loading, error ] =
useMutation(ADD_USER_QUERY,
refetchQueries:[GET_USERS_QUERY]
);
这是我的查询(硬编码参数是为了查看问题是否是由于传递变量):
export const ADD_USER_QUERY = gql`
mutation
createUser(name: "Albert Einstein", email: "albert@yahoo.ca")
id
name
`;
谢谢!
【问题讨论】:
【参考方案1】:好的,所以我弄清楚了问题所在。我必须在refetchQueries
数组中传递一个带有"query"
键的对象:
const [addUser, data, loading, error ] =
useMutation(ADD_USER_QUERY,
refetchQueries: [ query: GET_USERS_QUERY ],
);
这很奇怪,因为 ApolloDocs 中没有提到它。他们只是使用一个数组...
// Refetches two queries after mutation completes
const [addTodo, data, loading, error ] = useMutation(ADD_TODO,
refetchQueries: [
GET_POST, // DocumentNode object parsed with gql
'GetComments' // Query name
],
);
有人知道这是为什么吗?
谢谢!
【讨论】:
查询名称!= 查询常量(名称+正文) 这也吸引了我。但它说要在 API 参考中使用 query 来进行 useMutation 虽然 apollographql.com/docs/react/data/mutations/#refetchqueries以上是关于使用 Apollo-Client 重新获取查询会引发错误的主要内容,如果未能解决你的问题,请参考以下文章
angular, apollo-client, graphQL - 从 graphql 查询中选择所有字段
如何与另一个查询共享缓存的 apollo-client 数据
你如何动态控制 react apollo-client 查询启动?