【问题标题】:Refetching a query using Apollo-Client throws an error使用 Apollo-Client 重新获取查询会引发错误
【发布时间】: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
        }
    }
`;

谢谢!

【问题讨论】:

    标签: reactjs graphql apollo


    【解决方案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
      ],
    });
    

    有人知道这是为什么吗?

    谢谢!

    【讨论】:

    猜你喜欢
    • 2018-09-26
    • 2019-12-20
    • 2019-12-13
    • 2021-04-29
    • 2021-01-27
    • 1970-01-01
    • 2020-11-16
    • 2018-02-10
    • 2020-08-20
    相关资源
    最近更新 更多