【问题标题】:Apollo Client error when executing a mutation执行突变时 Apollo 客户端错误
【发布时间】:2021-10-06 12:12:43
【问题描述】:

这里又是另一个我似乎无法弄清楚的问题。

我正在使用 Apollo 客户端(带有 react)与我的 GraphQL 服务器进行通信。

当我尝试执行突变时出现错误,我不知道问题出在哪里,因为其他突变工作正常。

这是我遇到问题的突变:

const DELETE_USER_MUTATION = gql`
    mutation deleteUser($id: ID!) {
        deleteUser(id: $id) {
            id
        }
    }
`; 

当我在 GraphQL 操场上输入突变时,它可以正常工作...

这就是我所说的突变(由单击按钮触发):

<button
    onClick={() =>
        deleteUser({
            variables: {
                id: user.id,
            },
        })
    }>

注意:user.id是通过查询得到的,是有效的。

最后,deleteUser 函数是这样定义的(使用useMutation 钩子)

const [deleteUser, { error }] = useMutation(DELETE_USER_MUTATION, {
    refetchQueries: [{ query: GET_USERS_QUERY }],
});

另一方面,如何调试此类错误?在控制台上我收到一个错误 400,我读到这意味着它可能是突变本身的错误。但我没有得到有关该错误的更多信息...我试图抓住它但无济于事。

谢谢!

【问题讨论】:

    标签: reactjs graphql apollo apollo-client


    【解决方案1】:

    我能够解决这个问题,我不敢相信我没有早点意识到这个问题。

    在检查了 user.id 的类型后,我意识到它是一个字符串而不是一个整数。将其转换为 Int 有效。

    但是我现在遇到了一些缓存问题...是时候进行更多研究了

    【讨论】:

      猜你喜欢
      • 2017-09-14
      • 2018-09-03
      • 2017-09-06
      • 2021-09-03
      • 2019-02-17
      • 2021-07-11
      • 2018-10-15
      • 2019-02-14
      • 2021-11-18
      相关资源
      最近更新 更多