又来了一个我不太明白的问题。
我正在使用阿波罗客户端(与react)与我的GraphQL服务器通信。
当我尝试执行突变时,我得到一个错误,我不知道问题来自哪里,因为其他突变工作得很好。
这是我遇到问题的突变:
const DELETE_USER_MUTATION = gql`
mutation deleteUser($id: ID!) {
deleteUser(id: $id) {
id
}
}
`;
当我在GraphQL playground中输入它时,突变工作得很好…
这就是我如何调用突变(由按钮点击触发):
<button
onClick={() =>
deleteUser({
variables: {
id: user.id,
},
})
}>
注:user.id
是查询得到的,是合法的。
最后,deleteUser函数是这样定义的(使用useMutation
钩子)
const [deleteUser, { error }] = useMutation(DELETE_USER_MUTATION, {
refetchQueries: [{ query: GET_USERS_QUERY }],
});
附带说明一下,如何调试这样的错误?在控制台上,我得到一个错误400,我认为这意味着这可能是突变本身的错误。但是我没有得到关于错误的更多信息……我想抓住它,但没有用。
谢谢!
我能够解决这个问题,我真不敢相信我没有早点意识到这个问题。
检查用户类型后。id,我意识到它是一个字符串而不是整数。将其转换为Int有效。
然而,我现在有一些缓存问题…是时候做更多的研究了