执行突变时 Apollo 客户端错误
Posted
技术标签:
【中文标题】执行突变时 Apollo 客户端错误【英文标题】:Apollo Client error when executing a mutation 【发布时间】: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,我读到这意味着它可能是突变本身的错误。但我没有得到有关该错误的更多信息...我试图抓住它但无济于事。
谢谢!
【问题讨论】:
【参考方案1】:我能够解决这个问题,我不敢相信我没有早点意识到这个问题。
在检查了 user.id 的类型后,我意识到它是一个字符串而不是一个整数。将其转换为 Int 有效。
但是我现在遇到了一些缓存问题...是时候进行更多研究了
【讨论】:
以上是关于执行突变时 Apollo 客户端错误的主要内容,如果未能解决你的问题,请参考以下文章
React Native、GraphQL、Apollo - 突变期间抛出的错误
如何在使用表单组件时在 apollo-client 中链接突变
如何重置 Apollo 客户端的 useMutation 钩子
APOLLO CLIENT - 突变不起作用(无法读取未定义的属性“数据”)